2011-04-06 2 views
1

최종 사용을 원하지 않으므로 라이브러리를 설치해야합니다. 따라서 임원에 패키지 된 라이브러리를 사용하는 것이 좋습니다.외부 라이브러리를 실행 파일에 정적으로 어떻게 링크합니까?

이 관련 메이크 파일의 라인 : 나는 fann 부스트를 연결하기 위해 노력하고있어

hPif : src/main.o src/fann_utils.o src/hashes.o src/Config.o 
    g++ -o hPif src/main.o src/fann_utils.o src/hashes.o src/Config.o -static -lfann -lboost -L/usr/local/lib 

, 내가 선가 (http://www.adp-gmbh.ch/cpp/ gcc/create_lib.html)을 사용하면 -static 플래그를 사용하면이를 허용합니다.

내가 뭘 잘못하고 있니?

답변

1

-static 플래그는 정확하지만 라이브러리가 종속성이없는 정적 라이브러리인지 확인해야합니다. 공유로 빌드되거나 (또는 ​​의존성을 공유하는 경우) gcc는 정적으로 링크하지 않습니다 (그리고/또는 여전히 라이브러리 의존성을가집니다).

이렇게하려면 Boost 라이브러리를 다시 빌드해야 할 수도 있습니다.