Ошибка установки gcl Eclpse CDT: не удается найти -lgtest
Я следую за этим постом
настроить gtest 1.7 на eclipse cdt 8.2.1. но получил следующие ошибки:
....test/AllTests.bc src/Test.bc -lgmock -lgtest -lpthread -lstdc++
/usr/bin/ld: cannot find -lgmock
/usr/bin/ld: cannot find -lgtest
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Info: Parallel threads used: 3
Кстати, есть некоторые изменения с gtest 1.5 до 1.7, я на самом деле делаю ссылку так:
sudo ln -s lib/.libs/libgtest.a /usr/lib/libgtest.a
Как видите,libgtest находится в gtest1.7/lib/.lib(второй скрытый каталог), а не в gtest1.7/lib. так что я сделал не так?
1 ответ
Вы, кажется, пытались сделать символические ссылки на libgtest.a
а также libgmock.a
с помощью команд:
sudo ln -s lib/.libs/libgtest.a /usr/lib/libgtest.a
sudo ln -s lib/.libs/libgmock.a /usr/lib/libgmock.a
из консоли в /your/path/to/gtest-1.7.0
а также /your/path/to/gmock-1.7.0
соответственно.
Если вы откроете /usr/lib
в вашем файловом менеджере найдите ссылки libgtest.a
а также libgmock.a
и проверить их свойства, я думаю, вы обнаружите, что эти ссылки не работают, и именно поэтому компоновщик не может найти их в вашем проекте. Ваш ln
Команды дают относительные пути к своим целям, но необходимы абсолютные пути.
Если это так, удалите неработающие ссылки и воссоздайте их с помощью команд:
sudo ln -s /full/path/to/gtest-1.7.0/lib/.libs/libgtest.a /usr/lib/libgtest.a
sudo ln -s /full/path/to/mock-1.7.0/lib/.libs/libgmock.a /usr/lib/libgmock.a
Например, в моей системе /full/path/to/
знак равно /home/imk/develop/
Тогда я думаю, что ваша сборка будет работать.
Тем не менее, создание этих символических ссылок в /usr/lib
слегка портит вашу систему установки. Было бы лучше создать их в /usr/local/lib
, Или даже проще, вы можете просто добавить эти статические библиотеки в объектные файлы для связи вашего проекта:
В Eclipse перейдите в свой проект -> Свойства -> Сборка C/C++-> Настройки -> Компоновщиккомпилятора -> Библиотеки и удалите
gmock.a
,gtest.a
Сразу под библиотеками вы найдете Разное. Там, вДругие объекты, добавьте:
/full/path/to/libgtest.a
/full/path/to/libgmock.a
Все эти предложения сработали для меня.