Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Novilit-v
0 / 0 / 0
Регистрация: 14.10.2013
Сообщений: 21
#1

Запуск GTEST'a на Visual Studio - C++

15.12.2013, 16:26. Просмотров 1116. Ответов 2
Метки нет (Все метки)

Здравствуйте. У меня возникли проблемы с запуском Google Test на Visual Studio 2010. Делал всё по инструкции ссылка, однако при сборке решения теста появляется ошибка, сообщающая, что файл библиотеки GoogleTest.lib имеет не поддерживаемый или неизвестный двоичный формат; построение проекта при этом происходит. Позже, при запуске отладки какого-либо теста, возникает та же самая ошибка(на скриншоте). При попытке построения решения - бесконечные ошибки вида

Кликните здесь для просмотра всего текста
1>c:\program files\microsoft visual studio 10.0\vc\include\cmath(40): error C2059: синтаксическая ошибка: ;
1>c:\program files\microsoft visual studio 10.0\vc\include\cmath(40): error C2061: синтаксическая ошибка: идентификатор "ceil"
1>c:\program files\microsoft visual studio 10.0\vc\include\cmath(40): error C2059: синтаксическая ошибка: ;
1>c:\program files\microsoft visual studio 10.0\vc\include\cmath(41): error C2061: синтаксическая ошибка: идентификатор "cos"
1>c:\program files\microsoft visual studio 10.0\vc\include\cmath(41): fatal error C1003: число ошибок превышает 100; остановка компиляции
========== Построение: успешно: 0, с ошибками: 1, без изменений: 2, пропущено: 0 ==========


Почему так происходит? Помогите, пожалуйста, запустить тест.
Поскриптум: были попытки сделать всё по этой инструкции: ссылка после длительных метаний менее опытного в те времена меня упёрлись в ту же самую проблему. Пробовал работать на двух разных машинах, на VS 2010 и на VS 2013, ставить разные версии теста - то же самое. То есть дело в какой-то принципиальной ошибке в моих действиях, а не в программе.
0
Миниатюры
Запуск GTEST'a на Visual Studio  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.12.2013, 16:26
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Запуск GTEST'a на Visual Studio (C++):

Запуск программы с расширением .сpp с помощью Visual studio 2010 - C++
У меня есть файл с текстом программы с расширением .сpp "С++ Source" открываю с помощью Visual studio 2010. Но запустить не...

Запуск моей программы, написанной в Visual Studio 2015, на другом компьютере - C++
Здравствуйте! Просмотрела все темы с такой же проблемой на этом форуме, решения не нашла. Написала программу с использованием библиотеки...

Имеются ли отличия в компиляторах у сред разработки Visual Studio 2006 и Visual Studio 2015 ? - C++
скажите а где найти среду 2006 года? или можно использовать 2015 год?

Visual Studio Team Foundation Serverl или Visual Studio Professional - C++
Visual Studio Team Foundation Server 2010 Кто пользовался Visual Studio Team Foundation Server 2010, и чем она отличаеться от Visual...

Какую среду программирования лучше выбрать для обучения языку C++ ? Visual Studio,Visual Basic или Visual C++? - C++
И напишите,чем рекомендуемая вами среда программирования лучше других? Насколько я понял из Википедии они все поддерживают язык...

Написать программу. Задания нужно выполнять на языке Visual C++ в среде Microsoft Visual Studio 2008 - C++
Можете написать программу? Задание по номером 3.24 (2 рисунок).

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
_lunar_
1289 / 1215 / 86
Регистрация: 03.05.2011
Сообщений: 2,864
Завершенные тесты: 1
15.12.2013, 16:53 #2
подключил все заголовочные файлы из ссылки с хабры всё нормально, ругается только на не существующий CSomeRect
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include "gtest.h"
 
using namespace std;
 
class CRectTest : public ::testing::Test
{
 
};
 
TEST_F(CRectTest, CheckPerimeter)
{
    CSomeRect rect;
    rect.x = 5;
    rect.y = 6;
    ASSERT_TRUE(rect.GetPerimeter() == 22);
}
 
int main(int argc, char **argv)
{
    ::testing::InitGoogleTest(&argc, argv);
    return RUN_ALL_TESTS();
}
0
Novilit-v
0 / 0 / 0
Регистрация: 14.10.2013
Сообщений: 21
16.12.2013, 16:29  [ТС] #3
Итак, открываю \gtest-1.7.0\msvc, файл gtest-md.sln (ключ у меня /MDd, но с другим файлом и ключом пробовал - то же самое). Запускается Мастер преобразования, далее-далее-готово. Журнал преобразования - все файлы преобразованы. Построение-Построить решение. А, кажется, нашёл что-то, похожее на причину ошибки. Итак, в выводе:
Кликните здесь для просмотра всего текста
1>------ Перестроение всех файлов начато: проект: gtest-md, Конфигурация: Debug Win32 ------
1> gtest-all.cc
1>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppBuild.targets(1151,5): warning MSB8012: TargetPath(C:\GTEST\gtest-1.7.0\msvc\gtest-md/Debug\gtest-md.lib) не соответствует значению свойства выходного файла (C:\GTEST\gtest-1.7.0\msvc\gtest-md\Debug\gtestd.lib) для Library. Это может привести к неправильному построению проекта. Чтобы исправить это, убедитесь, что значения свойств $(OutDir), $(TargetName) и $(TargetExt) соответствуют значению, указанному в %(Lib.OutputFile).
1>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppBuild.targets(1153,5): warning MSB8012: TargetName(gtest-md) не соответствует значению свойства выходного файла (gtestd) для Library. Это может привести к неправильному построению проекта. Чтобы исправить это, убедитесь, что значения свойств $(OutDir), $(TargetName) и $(TargetExt) соответствуют значению, указанному в %(Lib.OutputFile).
1> gtest-md.vcxproj -> C:\GTEST\gtest-1.7.0\msvc\gtest-md/Debug\gtest-md.lib
2>------ Перестроение всех файлов начато: проект: gtest_main-md, Конфигурация: Debug Win32 ------
2> gtest_main.cc
2>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppBuild.targets(1151,5): warning MSB8012: TargetPath(C:\GTEST\gtest-1.7.0\msvc\gtest-md/Debug\gtest_main-md.lib) не соответствует значению свойства выходного файла (C:\Users\Михаил\Desktop\gtest-1.7.0\msvc\gtest-md\Debug\gtest_main-mdd.lib) для Library. Это может привести к неправильному построению проекта. Чтобы исправить это, убедитесь, что значения свойств $(OutDir), $(TargetName) и $(TargetExt) соответствуют значению, указанному в %(Lib.OutputFile).
2>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppBuild.targets(1153,5): warning MSB8012: TargetName(gtest_main-md) не соответствует значению свойства выходного файла (gtest_main-mdd) для Library. Это может привести к неправильному построению проекта. Чтобы исправить это, убедитесь, что значения свойств $(OutDir), $(TargetName) и $(TargetExt) соответствуют значению, указанному в %(Lib.OutputFile).
2> gtest_main-md.vcxproj -> C:\GTEST\gtest-1.7.0\msvc\gtest-md/Debug\gtest_main-md.lib
3>------ Перестроение всех файлов начато: проект: gtest_prod_test-md, Конфигурация: Debug Win32 ------
4>------ Перестроение всех файлов начато: проект: gtest_unittest-md, Конфигурация: Debug Win32 ------
3> production.cc
4> gtest_unittest.cc
3> gtest_prod_test.cc
3> Создание кода...
3>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppBuild.targets(990,5): warning MSB8012: TargetPath(C:\GTEST\gtest-1.7.0\msvc\gtest-md/Debug\gtest_prod_test-md.exe) не соответствует значению свойства выходного файла (C:\GTEST\gtest-1.7.0\msvc\gtest-md\Debug\gtest_prod_test.exe) для Linker. Это может привести к неправильному построению проекта. Чтобы исправить это, убедитесь, что значения свойств $(OutDir), $(TargetName) и $(TargetExt) соответствуют значению, указанному в %(Link.OutputFile).
3>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppBuild.targets(992,5): warning MSB8012: TargetName(gtest_prod_test-md) не соответствует значению свойства выходного файла (gtest_prod_test) для Linker. Это может привести к неправильному построению проекта. Чтобы исправить это, убедитесь, что значения свойств $(OutDir), $(TargetName) и $(TargetExt) соответствуют значению, указанному в %(Link.OutputFile).
3> gtest_prod_test-md.vcxproj -> C:\GTEST\gtest-1.7.0\msvc\gtest-md/Debug\gtest_prod_test-md.exe
4>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppBuild.targets(990,5): warning MSB8012: TargetPath(C:\GTEST\gtest-1.7.0\msvc\gtest-md/Debug\gtest_unittest-md.exe) не соответствует значению свойства выходного файла (C:\GTEST\gtest-1.7.0\msvc\gtest-md\Debug\gtest_unittest.exe) для Linker. Это может привести к неправильному построению проекта. Чтобы исправить это, убедитесь, что значения свойств $(OutDir), $(TargetName) и $(TargetExt) соответствуют значению, указанному в %(Link.OutputFile).
4>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppBuild.targets(992,5): warning MSB8012: TargetName(gtest_unittest-md) не соответствует значению свойства выходного файла (gtest_unittest) для Linker. Это может привести к неправильному построению проекта. Чтобы исправить это, убедитесь, что значения свойств $(OutDir), $(TargetName) и $(TargetExt) соответствуют значению, указанному в %(Link.OutputFile).
4> gtest_unittest-md.vcxproj -> C:\GTEST\gtest-1.7.0\msvc\gtest-md/Debug\gtest_unittest-md.exe
========== Перестроение всех: успешно: 4, с ошибками: 0, пропущено: 0 ==========


Настораживат строки
4>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppBuild.targets(990,5): warning MSB8012: TargetPath(C:\GTEST\gtest-1.7.0\msvc\gtest-md/Debug\gtest_unittest-md.exe) не соответствует значению свойства выходного файла (C:\GTEST\gtest-1.7.0\msvc\gtest-md\Debug\gtest_unittest.exe) для Linker. Это может привести к неправильному построению проекта. Чтобы исправить это, убедитесь, что значения свойств $(OutDir), $(TargetName) и $(TargetExt) соответствуют значению, указанному в %(Link.OutputFile).

Позже, когда будет жаловаться на невозможность открыть библиотеку, будет указывать адрес с неправильным слэшем:C:\GTEST\gtest-1.7.0\msvc\gtest-md/Debug\ У вас, скорее всего, этого нет, правда? Подскажите, если не сложно, где можно исправить ссылки.

Добавлено через 23 часа 9 минут
Ссылки вроде исправил, но проблема осталась - файл библиотеки всё равно не читается.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.12.2013, 16:29
Привет! Вот еще темы с ответами:

Перевод с RAD Studio в Visual studio - C++
Помогите пожалуйста, перевести код с одной среды разработки на другую, очень нужно. Вот код. #include &lt;vcl.h&gt; #pragma hdrstop ...

несовместимость visual c++ 6.0 и visual studio 2008 - C++
почему правильно гаписанная программа в visual c++ 6.0 не работает в visual studio 2008 , а именно #include &lt;iostream&gt; ...

несовместимость visual c++ 6.0 и visual studio 2008 - C++
почему правильно написанная программа в visual c++ 6.0 не работает в visual studio 2008 , а именно #include &lt;iostream&gt; using namespace...

Работает в Borland Developer Studio 2006 но не работает в Visual Studio 2008, почему? - C++
Вводим строку и меняем в ней первый и последний символы. Всё хорошо в Borland Developer Studio, а Visual Studio 2008 пишет, что проэкт...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru