Pakiet libgtest-dev wydaje się instalować tylko pliki nagłówkowe w systemie, ale nie statyczne i dynamiczne biblioteki, które powinny być zainstalowane w / usr / lib.
Czy to błąd?
Pakiet libgtest-dev wydaje się instalować tylko pliki nagłówkowe w systemie, ale nie statyczne i dynamiczne biblioteki, które powinny być zainstalowane w / usr / lib.
Czy to błąd?
Odpowiedzi:
Czy to błąd?
Nie, to celowe:
gtest (1.6.0-1ubuntu2) precyzyjny; pilność = niska * Przestań dystrybuować bibliotekę statyczną (chociaż nadal ją buduj, aby zapewnić GTest) Pracuje). Upstream w ogóle nie zaleca wysyłania biblioteki, tylko źródło. (Zobacz: http://code.google.com/p/googletest/wiki/FAQ) Opiekun Debiana również to planuje (patrz BTS: 639795); zrób to Ubuntu teraz spełnia wymagania MIR.
cd / usr / src / gtest sudo cmake. sudo make sudo mv libg * / usr / lib /
Edytować:
Nazwy zmieniły się nieznacznie na przestrzeni lat, choć proces pozostaje ten sam. W 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 -
Poprawiając odpowiedź Izx, użyłbym cmake w ten sposób:
sudo cmake -DCMAKE_BUILD_TYPE=RELEASE .
i spróbowałbym kompilacji spoza źródła:
cd /tmp
mkdir .build
cd .build
cmake -DCMAKE_BUILD_TYPE=RELEASE /usr/src/gtest/
make
sudo mv libg* /usr/lib/
Pamiętaj, że zalecanym przez Google sposobem jest ściągnięcie do istniejącego projektu kodu źródłowego gtest.
Alternatywnie, podczas korzystania z CMake, możesz użyć, add_subdirectory
aby dodać źródło gtest, które zostało dostarczone, libgtest-dev
ponieważ domyślnie wchodzi w /usr/src/googletest
.
Następujące będą działać
add_subdirectory(/usr/src/googletest gtest)
target_link_libraries(your_executable gtest)