Пакет libgtest-dev, похоже, устанавливает в систему только заголовочные файлы, но не статические и динамические библиотеки, которые должны быть установлены в / usr / lib.
Это ошибка?
Пакет libgtest-dev, похоже, устанавливает в систему только заголовочные файлы, но не статические и динамические библиотеки, которые должны быть установлены в / usr / lib.
Это ошибка?
Ответы:
Это ошибка?
Нет, это намеренно
gtest (1.6.0-1ubuntu2) точный; Актуальность = низкий * Перестать распространять статическую библиотеку (хотя все равно собирать ее, чтобы обеспечить gtest работает). Upstream рекомендует вообще не отправлять библиотеку, только источник. (См .: http://code.google.com/p/googletest/wiki/FAQ). Сопровождающий Debian планирует сделать это также (см. BTS: 639795); сделать это в Ubuntu теперь, чтобы выполнить требования MIR.
cd / usr / src / gtest sudo cmake. судо сделать sudo mv libg * / usr / lib /
Редактировать:
Имена немного изменились за эти годы, хотя процесс остается тем же. В Ubuntu 17.04:
sudo apt-get install libgtest-dev
cd /usr/src/googletest/googletest
sudo mkdir build
cd build
sudo cmake ..
sudo make
sudo cp libgtest* /usr/lib/
cd ..
sudo rm -rf build
cd /usr/src/gtest && sudo cmake . && sudo make && sudo mv libg* /usr/lib/ && cd -
Улучшая ответ izx, я бы использовал cmake следующим образом:
sudo cmake -DCMAKE_BUILD_TYPE=RELEASE .
и я бы попытался построить сборку вне исходного кода:
cd /tmp
mkdir .build
cd .build
cmake -DCMAKE_BUILD_TYPE=RELEASE /usr/src/gtest/
make
sudo mv libg* /usr/lib/
Обратите внимание, что рекомендуемый способ от Google состоит в том, чтобы ваш существующий проект извлек исходный код gtest.
В качестве альтернативы, при использовании с CMake, вы можете использовать add_subdirectory
для добавления исходный код gtest, libgtest-dev
поскольку он по умолчанию входит в /usr/src/googletest
.
Следующее будет работать
add_subdirectory(/usr/src/googletest gtest)
target_link_libraries(your_executable gtest)