2016-12-21 14 views
2

У меня возникла проблема с запуском Gtest и Gmock в Windows10. Я обычно работаю в Linux, но хотел переключиться на Windows и столкнулся с проблемой.Работа с Gtest и Gmock на Windows

Мне удалось создать Gmock и Gtest в соответствии с документацией (с Cmake и Visual Studio). У меня есть файлы gmock.lib и gtest.lib в соответствующих каталогах. Но когда я хочу связать их с моей тестовой программой, я вижу десятки ошибок типа «неопределенная ссылка».

Команда, которую я использую:

g++ "-LC:\\Users\\jacek\\cpp\\googletest\\googlemock\\Debug" "-LC:\\Users\\jacek\\cpp\\googletest\\googlemock\\gtest\\Debug" -o HelloWorld "src\\counter.o" "src\\counter_test.o" -lgmock -lgtest 

Ошибки, например:

C:\Users\jacek\workspace\HelloWorld\Debug/../src/counter_test.cpp:14: undefined reference to testing::Message::Message()' C:\Users\jacek\workspace\HelloWorld\Debug/../src/counter_test.cpp:14: undefined reference to testing::internal::AssertHelper::AssertHelper(testing::TestPartResult::Type, char const*, int, char const*)' 

Я попытался найти на это и обнаружил, что, возможно, я должен построить разделяемые библиотеки. Я перестроил gmock и gtest с соответствующим вариантом, теперь у меня есть также файлы dll, но я получаю все те же ошибки.

Что я здесь делаю неправильно?

Возможно, проблема в том, что библиотеки linux называются иначе, чем на окнах? (libgmock.a vs gmock.lib) Должен ли я что-то изменить в команде на g ++ из-за этого?

Пути, которые я вставил, хороши, файлы есть (иначе ошибка будет другой).

Что мне здесь не хватает?

+0

Хорошо, я решил проблему. Оказалось, что я не могу скомпилировать библиотеки с Visual Studio, а затем использовать их с G ++. Мне пришлось переключиться на другой подход, и это видео было очень полезно: https://www.youtube.com/watch?v=y9sGAF1k63o&list=PL0SUKxlBaq1COi52nuq2lPf6AbMRrn2LI&index=7 – YotKay

ответ

1

Хорошо, я решил проблему. Оказалось, что я не могу скомпилировать библиотеки с Visual Studio, а затем использовать их с G ++. Мне пришлось переключиться на другой подход, и это видео было очень полезно: https://www.youtube.com/watch?v=y9sGAF1k63o&list=PL0SUKxlBaq1COi52nuq2lPf6AbMRrn2LI&index=7

Видео рассказывает о том, как использовать gtest с Eclipse, но не используя библиотеку, но скомпилированные файлы cpp и h из скрипта gtest. Он работает нормально. Единственная проблема, с которой я столкнулся, это то, что я установил версию python 3.5 и в некоторых случаях не поддерживает обратную совместимость с python 2.7, используемым в сценарии «плавкий предохранитель», но мне удалось быстро исправить эти несколько случаев и заставить его работать.

1

в дополнение к вашему правильному ответу: Если вы хотите работать с внешними библиотеками (например, gmock или gtest), вам необходимо скомпилировать библиотеки и вашу программу с тем же компилятором. И именно поэтому ваша программа выдает ошибку с неопределенной ссылкой. В визуальной студии есть компилятор MSVC. Если вы хотите работать с VS, то просто скомпилируйте свою программу также с VS. И это еще не все, вам нужно использовать один и тот же компилятор и те же настройки (например, компиляция в режиме отладки)

Я просто хотел добавить это к вашему ответу. Из-за вас писали:

Оказалось, что я не могу скомпилировать библиотеки с Visual Studio

и это не так, вы можете скомпилировать библиотеки с VS, но вы cant't связать их с вашей программой , Возможно, это уже было ясно, затем извините мой ответ.

 Смежные вопросы

  • Нет связанных вопросов^_^