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

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

Восстановить пароль Регистрация
 
Novilit-v
0 / 0 / 0
Регистрация: 14.10.2013
Сообщений: 21
15.12.2013, 16:26     Запуск GTEST'a на Visual Studio #1
Здравствуйте. У меня возникли проблемы с запуском 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, ставить разные версии теста - то же самое. То есть дело в какой-то принципиальной ошибке в моих действиях, а не в программе.
Миниатюры
Запуск GTEST'a на Visual Studio  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.12.2013, 16:26     Запуск GTEST'a на Visual Studio
Посмотрите здесь:

C++ Visual Studio
C++ Visual studio
C++ Работает в Borland Developer Studio 2006 но не работает в Visual Studio 2008, почему?
несовместимость visual c++ 6.0 и visual studio 2008 C++
Запуск программы с расширением .сpp с помощью Visual studio 2010 C++
C++ Visual Studio
C++ Не удается подключить к приложению gtest и свою статическую либу VS 2010
C++ gtest & _VARIADIC_MAX = 10

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
_lunar_
Graphics API Developer
1197 / 1123 / 76
Регистрация: 03.05.2011
Сообщений: 2,741
15.12.2013, 16:53     Запуск GTEST'a на Visual Studio #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();
}
Novilit-v
0 / 0 / 0
Регистрация: 14.10.2013
Сообщений: 21
16.12.2013, 16:29  [ТС]     Запуск GTEST'a на Visual Studio #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 минут
Ссылки вроде исправил, но проблема осталась - файл библиотеки всё равно не читается.
Yandex
Объявления
16.12.2013, 16:29     Запуск GTEST'a на Visual Studio
Ответ Создать тему
Опции темы

Текущее время: 01:31. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru