Похоже, что пакет libgtest-dev устанавливает в систему только заголовочные файлы, но не статические и динамические библиотеки, которые должны быть установлены в /usr/lib.
.Это ошибка?
Действительно ли это - ошибка?
Нет, это является преднамеренным:
gtest (1.6.0-1ubuntu2) precise; urgency=low * Stop distributing static library (although still build it, to ensure gtest works). Upstream recommends against shipping the libary at all, just the source. (See: http://code.google.com/p/googletest/wiki/FAQ) The Debian maintainer plans to do this also (see BTS: 639795); do it in Ubuntu now to fulfil MIR requirements.
cd /usr/src/gtest sudo cmake . sudo make 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
Улучшая ответ 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/
Это должна быть ошибка зависимости, libgtest
должна быть установлена вместе с libgtest-dev
.
Можете ли вы сначала попробовать apt-get install -y libgtest
?
Также не забудьте отправить отчет об ошибке в Ubuntu.
Обратите внимание, что рекомендовал , путь Google состоит в том, чтобы иметь Ваш существующий проект, втягивают gtest исходный код.
, С другой стороны, при использовании с CMake, можно использовать add_subdirectory
для добавления gtest источника, который шел libgtest-dev
, так как он по умолчанию входит /usr/src/googletest
.
следующее будет работать
add_subdirectory(/usr/src/googletest gtest)
target_link_libraries(your_executable gtest)