2013-07-30 3 views
2

GCC에서 동적 라이브러리 대신 정적 라이브러리를 사용하도록하려면 어떻게해야합니까? 일반적으로 .a 파일을 링커 매개 변수에 추가합니다. 그러나 libssp 연결은 -fstack-protector 옵션에 의해 트리거됩니다. 컴파일러는 정적 라이브러리 대신 하나를 찾으면 공유 라이브러리에 연결하는 것을 선호합니다.gcc 링크를 정적으로 만드는 방법은 무엇입니까?

libssp.so가없는 시스템에서 결과 프로그램을 실행하려고하면 프로그램이 실행되지 않습니다.

(일부 빌드 시스템에서 시스템 업그레이드 후, 테스트 시스템의 오래된 상자 망쳐)

+0

이것은 관련이있을 수 있습니다. http://stackoverflow.com/questions/1348895/how-do-i-get-c-programs-to-link-with-gccs-stack-protector-feature-on-aix –

답변

5

gcc -static static.c -o static -fstack-protector-all 

또는

gcc -static -lssp static.c -o static -fstack-protector-all 

사용할 수 있습니까? 결과 바이너리에서 ldd를 실행할 수 있습니까?

어떤 gcc 버전을 사용하고 있습니까?

관련 문제