Google 테스트를 위해 라이브러리 파일이 설치되지 않은 이유는 무엇입니까?


54

libgtest-dev 패키지는 시스템에 헤더 파일 만 설치하는 것으로 보이지만 / usr / lib에 설치해야하는 정적 및 동적 라이브러리는 아닙니다.

버그입니까?


2
의도적이므로 버그가 아닙니다. 그러나 상황은 완전히 혼란 스럽다. 따라서 bugs.debian.org/cgi-bin/bugreport.cgi?bug=802587에 버그 보고서를 제출했습니다 .
Joachim W

ugh ... boost의 테스트 프레임 워크가 "그냥 작동"합니까?
Andrew Wagner

답변:


70

버그입니까?

아니요, 의도적입니다.

gtest (1.6.0-1 우분투 2) 정확한; 긴급 = 낮음

  * 정적 라이브러리 배포를 중지하십시오 (아직 빌드하더라도 gtest를 보장하십시오)
    공장). 업스트림은 라이브러리를 전혀 배송하지 않는 것이 좋습니다.
    출처. (http://code.google.com/p/googletest/wiki/FAQ 참조)
    데비안 관리자도이를 수행 할 계획입니다 (BTS : 639795 참조). 그것을하다
    우분투는 이제 MIR 요구 사항을 충족합니다.

정적 라이브러리를 작성하려면

cd / usr / src / gtest
sudo cmake.
Sudo make
sudo mv libg * / usr / lib /

편집하다:

프로세스는 동일하지만 이름은 수년에 걸쳐 약간 변경되었습니다. 우분투 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

감사! 이런 식으로 라이브러리를 만들었습니다. .deb 패키지에 대한 공식적인 접근 방식 이 아닐 수도 있다고 생각했습니다 .
eddyxu

1
구글은 신비한 방식으로 작동합니다! :) 기뻤습니다.
ish

2
복사-붙여 넣기 버전 :cd /usr/src/gtest && sudo cmake . && sudo make && sudo mv libg* /usr/lib/ && cd -
exic

2
실제로 여기에 설명 된 이유는 모든 라이브러리에 적용 할 있습니다. 예를 들어 boost가 libstdc ++와 연결되어 있고 libc ++를 사용하려면 소스에서 boost를 다시 컴파일해야합니다. 그래서 이상합니다, IMHO
ruslo

7
이것은 괴물 같은 괴물입니다. 그들은 왜 소스를 위해 라이브러리를 배송하지 않습니까? 또는 최소한 패키지 설치시 자동으로 빌드하십시오.
가짜 이름

23

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/

0

점을 유의 권장 구글에 의한 방법은 기존 프로젝트에 gtest 소스 코드를 당겨하는 것입니다.

또는 CMake와 함께 사용할 때 기본적으로로 시작한 이후에 add_subdirectory제공된 gtest 소스를 추가하는 데 사용할 수 있습니다 .libgtest-dev/usr/src/googletest

다음은 작동합니다

add_subdirectory(/usr/src/googletest gtest)
target_link_libraries(your_executable gtest)
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.