g++ 링커: 정적 라이브러리가 있는 경우 정적 링크를 강제로 적용하시겠습니까?
나는 많은 도서관을 링크하는 프로그램을 가지고 있다. g++
디폴트로는는 대응하는 아카이브가 존재하는 경우에도 공유 라이브러리에 링크하는 것을 선호합니다.
정적 아카이브가 존재하는 경우 동적 라이브러리보다 정적 아카이브를 선호하도록 이 기본 설정을 변경하려면 어떻게 해야 합니까?
주의: 저는-static
모든 라이브러리의 정적 아카이브를 검색하려고 합니다.이러한 아카이브는, 내가 원하는 것이 아닙니다.
g++ -Wl,-Bstatic -lz -lfoo -Wl,-Bdynamic -lbar -Wl,--as-needed
링크하다zlib
그리고.libfoo
스태틱으로 되어 있습니다.libbar
dynamic으로 지정합니다.--as-needed
사용되지 않는 동적 라이브러리가 모두 폐기됩니다.
시스템 라이브러리를 포함한 하나 또는 두 개의 라이브러리만 다른 라이브러리와 정적으로 링크하는 경우, 대부분의 경우 정적인 라이브러리를 단순히 풀네임으로 참조하는 것이 더 쉽습니다.사용하는 것보다-l
그리고.-L
g++로 라이브러리를 해결하려면 , simpy로 라이브러리의 풀 패스를 입력으로 추가합니다.위의 g++ 명령어를 사용하여main.o
응용 프로그램 메인 프로그램을 static libz 및 libfoo, dynamic libbar 및 libglib 등에 적용합니다.:
g++ main.o /usr/lib/libz.a /usr/lib/libfoo.a -lbar
8월 17일 편집 3일: 이 답변에 대해 조금 전 우연히 알게 되었습니다.상세한 내용은 다른 방법을 제시합니다.-l:
라이브러리를 직접 지정합니다.
언급URL : https://stackoverflow.com/questions/3698321/g-linker-force-static-linking-if-static-library-exists
'programing' 카테고리의 다른 글
Vue.js에서 속성과 메서드를 재정의하는 적절한 방법? (0) | 2022.07.30 |
---|---|
Vue/Vuex - 모듈2는 모듈1에 의존하며 모듈1은 서버로부터 데이터를 취득합니다. (0) | 2022.07.28 |
구조와 유니언의 차이점 (0) | 2022.07.28 |
드롭다운에서 화살표 키를 사용하여 스크롤합니다(vuejs). (0) | 2022.07.28 |
페이지 새로고침 후 데이터가 사라짐 - vuexfire (0) | 2022.07.28 |