«linker» 태그된 질문

링커는 컴파일 된 프로그래밍 언어로 작성된 소스 코드에서 실행 파일을 생성하기위한 도구 모음의 일부입니다. 여러 파일에서 컴파일 된 개체 코드를 가져 와서 "연결된"단일 실행 파일을 생성합니다.

5
라이브러리 경로의 기본 설정을 지정하는 방법은 무엇입니까?
g++및을 사용하여 C ++ 프로그램을 컴파일 하고 ld있습니다. 나는이 .so내가 원하는 라이브러리를 연결시 사용. 그러나, 같은 이름의 라이브러리에 존재 /usr/local/lib하고, ld내가 직접 지정하고있어 하나 이상 해당 라이브러리를 선택하고있다. 이 문제를 어떻게 해결할 수 있습니까? 아래 예의 경우 내 라이브러리 파일은 /my/dir/libfoo.so.0. 작동하지 않는 시도한 것 : 내 g ++ 명령은 …
95 c++  linker  g++ 


4
이미 컴파일 된 바이너리에서 'rpath'를 변경할 수 있습니까?
스크랩 힙에 대해 예약 된 오래된 실행 파일이 있지만 아직 없습니다. 내 환경에서 제거 된 일부 라이브러리에 의존하지만 제대로 작동하는 어딘가에 스텁 라이브러리가 있습니다. 이 실행 파일을 이러한 스텁 라이브러리로 가리키고 싶습니다. 예, LD_LIBRARY_PATH를 설정할 수 있지만이 실행 파일은 많은 스크립트에서 호출되며 많은 사용자가 한곳에서 수정하고 싶습니다. 나는 이것에 대한 …
92 linux  linker  elf 

1
-rpath와 -L의 차이점은 무엇입니까?
gcc및 ld라이브러리-사이에 그들에게 대한 검색 경로를 지정하는 방법에는 여러 가지 제공 -rpath하고 -L플래그를. 맨 페이지는이 두 플래그 사이에 차이가 없음을 나타내며 각 플래그가 라이브러리 검색 경로에 라이브러리를 추가한다고 효과적으로 말합니다. 그러나 모두 플래그를 수행하는 것이 이상한 것 같다 정확히 같은 일을. 이 두 옵션의 차이점은 무엇입니까?

5
Linux 동적 링커에서 "사용 가능한 버전 정보 없음"오류는 무엇을 의미합니까?
우리 제품에는 "libpam"과 같은 시스템 라이브러리에 동적으로 연결되는 일부 Linux 바이너리가 포함되어 있습니다. 일부 고객 시스템에서는 프로그램이 실행될 때 stderr에서 다음 오류가 발생합니다. ./authpam: /lib/libpam.so.0: no version information available (required by authpam) 응용 프로그램이 제대로 실행되고 동적 라이브러리에서 코드를 실행합니다. 따라서 이것은 치명적인 오류가 아니라 단지 경고 일뿐입니다. 시스템 설치된 …
89 linux  linker 


9
인라인 함수의 정적 변수
헤더 파일에 선언되고 정의 된 함수가 있습니다. 이것은 그 자체로 문제입니다. 해당 함수가 인라인되지 않으면 해당 헤더를 사용하는 모든 번역 단위가 함수의 사본을 가져오고 함께 연결될 때 중복됩니다. 함수를 인라인으로 만들어서 "고정"했지만, "인라인"키워드를 지정하더라도 컴파일러가 인라인을 보장하지 않기 때문에 이것이 깨지기 쉬운 솔루션이라는 것이 두렵습니다. 이것이 사실이 아닌 경우 저를 …


7
"공유 객체를 만들 때`.rodata.str1.8 '에 대한 재배치 R_X86_64_32를 사용할 수 없습니다."로 컴파일 실패
VPS의 makefile에서이 소스 코드를 컴파일하려고하는데 작동하지 않습니다. VPS는 64 Cent OS입니다. 다음은 전체 오류입니다. # make gcc -c -O3 -w -DLINUX -I../SDK/amx/ ../SDK/amx/*.c g++ -c -O3 -w -DLINUX -I../SDK/amx/ ../SDK/*.cpp g++ -c -O3 -w -DLINUX -I../SDK/amx/ *.cpp g++ -O2 -fshort-wchar -shared -o "TCP_V1.so" *.o /usr/bin/ld: TCP-LINUX_V1.o: relocation R_X86_64_32 against `.rodata.str1.8' …

1
--start-group 및 --end-group 명령 줄 옵션은 무엇입니까?
이러한 명령 줄 옵션의 목적은 무엇입니까? 다음 명령 줄의 의미를 해독하는 데 도움을주세요. -Wl,--start-group -lmy_lib -lyour_lib -lhis_lib -Wl,--end-group -ltheir_lib 분명히 그것은 연결과 관련이 있지만 GNU 매뉴얼은 정확히 그룹화가 의미하는 바를 조용합니다.
83 gcc  linker  ld 

3
구성 / 메이크주기에 include 및 lib 경로를 추가하는 방법은 무엇입니까?
su 액세스 권한이없는 Linux 상자에 라이브러리를 설치할 장소가 필요합니다. ~ / local [/ bin, / lib, / include]를 사용하고 있지만 ./configure에서 라이브러리를 찾도록 어떻게 말할 수 있는지 모르겠습니다 (특히 libgif가 필요한 emacs를 컴파일하려고합니다). , 내 배포판에 오지 않음). 나는 추가를 시도했다 export PATH=$PATH:~/local/bin export LD_LIBRARY_PATH=~/local/lib export C_INCLUDE_PATH=~/local/include export CPLUS_INCLUDE_PATH=~/local/include .bashrc에 …

6
C의 공유 전역 변수
C에서 공유되는 전역 변수를 어떻게 만들 수 있습니까? 헤더 파일에 넣으면 링커는 변수가 이미 정의되어 있다고 불평합니다. 내 C 파일 중 하나에서 변수를 선언하고 extern사용하려는 다른 모든 C 파일의 맨 위에 s 를 수동으로 넣는 유일한 방법 입니까? 이상적이지 않은 것 같습니다.

4
공유 라이브러리에서 해결되지 않은 기호를 쉽게 확인 하시겠습니까?
상당히 큰 C ++ 공유 객체 라이브러리를 작성 중이며 디버깅을 어렵게 만드는 작은 문제가 발생했습니다. 헤더 파일에 함수 / 메서드를 정의하고이를위한 스텁을 만드는 것을 잊은 경우 (개발 중), 실행 파일이 아닌 공유 객체 라이브러리로 빌드하고 있기 때문에 컴파일 타임에 오류가 발생하지 않는다는 오류가 나타나지 않습니다. 그 기능을 구현하는 것을 잊었습니다. …

5
정적 라이브러리, 정적으로 연결된 동적 라이브러리 및 동적으로 연결된 동적 라이브러리의 .lib 파일에는 무엇이 있습니까?
정적 라이브러리, 정적으로 연결된 동적 라이브러리 및 동적으로 연결된 동적 라이브러리의 .lib 파일에는 무엇이 있습니까? 동적으로 연결된 동적 라이브러리에 .lib 파일이 필요하지 않고 정적 연결에서 .lib 파일은 모든 메서드가 포함 된 .obj 파일 일뿐입니다. 그 맞습니까?

8
ld를 금으로 대체-경험이 있습니까?
누구든지 gold대신 사용하려고 ld했습니까? gold 는 보다 훨씬 빠르기 ld때문에 대규모 C ++ 애플리케이션의 테스트주기를 가속화하는 데 도움이 될 수 있지만 ld의 드롭 인 대체물로 사용할 수 있습니까? 수 gcc/ g++직접 전화 gold.? 알려진 버그 나 문제점이 있습니까? goldGNU binutils의 일부 이지만 웹에서 "성공 사례"나 "Howtos"조차 거의 발견하지 못했습니다. ( …
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.