Dlaczego nie zainstalowano plików bibliotek do testu Google?

54

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?

eddyxu
źródło
2
Ponieważ jest to celowe, nie jest to błąd; jednak sytuacja jest całkowicie zagmatwana. Dlatego zgłosiłem raport o błędzie na stronie bugs.debian.org/cgi-bin/bugreport.cgi?bug=802587 .
Joachim W
ugh ... czy środowisko testowe boosta „po prostu działa”?
Andrew Wagner,

Odpowiedzi:

70

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.

Aby zbudować biblioteki statyczne

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
ish
źródło
Dzięki! W ten sposób zbudowałem biblioteki. Pomyślałem, że może to nie być oficjalne podejście do pakietu .deb.
eddyxu
1
Google działa w tajemniczy sposób! :) Cieszę się, że to pomogło.
ish
2
Kopiuj-wklej wersja:cd /usr/src/gtest && sudo cmake . && sudo make && sudo mv libg* /usr/lib/ && cd -
exic
2
Faktycznie opisany tutaj powód można zastosować do dowolnej biblioteki. Na przykład, jeśli boost jest połączony z libstdc ++ i chcesz użyć libc ++, musisz ponownie skompilować boost ze źródeł. To dziwne, IMHO
Ruslo
7
To cholernie dziwne. Dlaczego, do diabła, nie wysłali biblioteki do źródła? Lub przynajmniej zainstaluj pakiet automatycznie go skompiluj.
Fałszywe imię
23

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/
Wojciech Migda
źródło
0

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_subdirectoryaby dodać źródło gtest, które zostało dostarczone, libgtest-devponieważ 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)
Rufus
źródło