Я использую gtests для модульного тестирования личного проекта.На прошлой неделе я обновил LTS до версии Linux Mint.К сожалению, после этого события я не смог скомпилировать свой проект из-за проблем со ссылками на gtests.
Выдается следующая ошибка:
/usr/bin/x86_64-linux-gnu-ld: build/tests/policies/roundrobin_tests.o: undefined reference to symbol '_ZN7testing4TestC2Ev'
/home/myuser/Documents/googletest-release-1.8.0/googletest/libgtest.so: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
Я сгенерировал оба libgtest.so и libgtest_main.so через CMake 3.10.2.Самая лучшая версия - версия 1.8.0, та же, что и раньше.
Эти библиотеки находятся в / usr / lib, а соответствующая папка include также скопирована в / usr / include.Я убедился, что это место находится в моем пути ld, и это не проблема.
Мой компилятор - g ++ v7.3.0, и команда, которую я использую для компиляции яичек:
g++ -std=c++14 -Wall -O3 -Iinclude build/tests/policies/roundrobin_tests.o -lgtest_main -pthread -o bin/policies/roundrobin_tests
Я попытался изменить порядок элементов в команде, явно добавив -L / usr / lib и -I / usr / include без удачи.Забавным фактом является то, что если я уберу флаг -pthread, ошибка останется прежней.
Та же команда использовалась раньше, и единственным отличием является версия компилятора, которую я использую сейчас, так как я использовал g ++ 5.4.0 раньше.Есть какие-то идеи о том, как решить эту проблему?
edit: Только что протестировал тот же процесс с g ++ 5.4.0 и CMake 3.5 и возникли те же проблемы.