«linker» 태그된 질문

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

12
파이썬을 기계 코드로 컴파일하는 것이 가능합니까?
파이썬을 (중간 C 표현을 통해) 머신 코드로 컴파일하는 것이 얼마나 가능합니까? 아마도 그것은 파이썬 런타임 라이브러리에 연결될 필요가있을 것이며, 파이썬 자체 인 파이썬 표준 라이브러리의 어떤 부분도 컴파일 (및 링크)되어야 할 것입니다. 또한 표현식의 동적 평가를 원한다면 Python 인터프리터를 번들로 제공해야하지만, 이것을 허용하지 않은 Python의 하위 세트는 여전히 유용 할 …
128 python  c  linker  compilation 


2
GHC로 거대한 바이너리로 컴파일 된 작은 Haskell 프로그램
사소한 하스켈 프로그램조차도 거대한 실행 파일로 바뀝니다. 나는 작은 프로그램을 작성했는데, 그것은 (GHC로) 7MB를 확장하는 바이너리로 컴파일되었습니다! 작은 하스켈 프로그램도 거대한 바이너리로 컴파일되는 원인은 무엇입니까? 이것을 줄이기 위해 무엇을 할 수 있습니까?

1
동적으로 링크 된 공유 라이브러리의 전역 및 정적 변수는 어떻게됩니까?
전역 및 정적 변수가있는 모듈이 응용 프로그램에 동적으로 연결될 때 어떤 일이 발생하는지 이해하려고합니다. 모듈이란 솔루션의 각 프로젝트를 의미합니다 (저는 Visual Studio에서 많이 작업합니다!). 이러한 모듈은 * .lib 또는 * .dll 또는 * .exe 자체에 내장되어 있습니다. 나는 응용 프로그램의 바이너리가 데이터 세그먼트에있는 모든 개별 번역 단위 (객체 파일)의 전역 …

4
링커는 무엇을합니까?
나는 항상 궁금했다. 컴파일러가 작성한 코드를 바이너리로 변환한다는 것을 알고 있지만 링커는 무엇을합니까? 그들은 항상 나에게 미스터리였습니다. 나는 '연결'이 무엇인지 대략 이해합니다. 라이브러리 및 프레임 워크에 대한 참조가 바이너리에 추가 될 때입니다. 나는 그 이상을 이해하지 못합니다. 나를 위해 그것은 "그냥 작동한다". 나는 또한 동적 연결의 기본을 이해하지만 너무 깊이는 …

1
-all_load 링커 플래그는 무엇을합니까?
Objective-C 코드를 컴파일 할 때 -all_load 플래그가 수행하는 작업을 어디에서도 찾을 수 없습니다. 바이너리를 Apple에 업로드하는 데 몇 가지 문제가 있습니다. 그들은이 플래그를 사용하지 않았기 때문이라고 말하지만 코드 없이도 컴파일됩니다. 누군가 나를 도울 수 있습니까? 감사

8
Visual C ++ : 특정 링커 경고를 비활성화하는 방법은 무엇입니까?
내 코드 컴파일의 연결 단계에서이 형식의 많은 연결 경고를 생성하는 CGAL의 라이브러리를 사용하고 있습니다. warning LNK4099: PDB 'vc80.pdb' was not found with 'gmp-vc80-mt-sgd.lib' or at 'vc80.pdb'; linking object as if no debug info Visual C ++ / Studio 2008에서이 특정 링커 경고를 어떻게 해제합니까? 사용중인 외부 (CGAL) 라이브러리에 대한 제어 …

23
Visual Studio에서 C ++ 프로젝트를 컴파일 할 때 "LNK1104 : 'C : \ Program.obj'파일을 열 수 없습니다. '라는 치명적인 오류가 발생하는 이유는 무엇입니까?
Visual Studio 2008에서 새로운 C ++ 프로젝트를 만들었습니다. 아직 코드가 작성되지 않았습니다. 프로젝트 설정 만 변경되었습니다. 프로젝트를 컴파일 할 때 다음과 같은 치명적인 오류가 발생합니다. 치명적인 오류 LNK1104 : 'C : \ Program.obj'파일을 열 수 없습니다.
117 visual-c++  linker 

4
특정 glibc 버전에 연결하려면 어떻게해야합니까?
Ubuntu Lucid 10.04 PC에서 무언가를 컴파일하면 glibc와 연결됩니다. Lucid는 2.11의 glibc를 사용합니다. 이전 glibc가있는 다른 PC에서이 바이너리를 실행하면 glibc 2.11이 없다는 명령이 실패합니다. 내가 아는 한 glibc는 기호 버전 관리를 사용합니다. gcc가 특정 기호 버전에 대해 링크하도록 강제 할 수 있습니까? 내 구체적인 사용에서 ARM 용 gcc 크로스 툴체인을 컴파일하려고합니다.
110 linux  gcc  linker  glibc  libc 

4
Visual Studio Express 2005를 사용하여 완전히 정적으로 연결된 .exe를 만들려면 어떻게합니까?
현재 선호하는 C ++ 환경은 무료이며 대체로 우수한 Microsoft Visual Studio 2005 Express 에디션입니다. 때때로 나는 기분 좋은 결과로 다른 사람들에게 릴리스 .exe 파일을 보냈습니다. 그러나 최근에 나는 만족스러운 결과가 내가 원하는 더 많은 운에 근거한 것이라는 불안한 발견을했다. 오래된 (2001 년 빈티지, 꼼꼼하게 업데이트되지 않은) XP 상자에서 이러한 프로그램 …

8
일부 라이브러리 만 정적 링크
GCC와 연결할 때 일부 특정 라이브러리 만 내 바이너리에 정적으로 연결할 수있는 방법은 무엇입니까? gcc ... -static ...링크 된 모든 라이브러리 를 정적으로 링크하려고 하지만 일부 라이브러리의 정적 버전이 없습니다 (예 : libX11).


6
__gxx_personality_v0의 용도는 무엇입니까?
이것은 OS 개발 사이트의 간접 질문이지만 어디에서도 괜찮은 설명을 찾을 수 없기 때문에 궁금했습니다. gcc를 사용하여 독립형 C ++ 프로그램을 컴파일하고 링크 할 때 때때로 다음과 같은 링커 오류가 발생합니다. out/kernel.o:(.eh_frame+0x11): undefined reference to `__gxx_personality_v0' 이 기호는 독립 환경에서 누락 된 libstdc ++에 정의되어 있기 때문입니다. 문제를 해결하려면이 기호를 어딘가에 …
103 c++  gcc  linker  kernel 

3
C ++ 17, C ++ 14 및 C ++ 11 개체를 연결하는 것이 안전합니까?
모두 동일한 컴파일러 / 버전 에서 생성 된 세 개의 컴파일 된 객체가 있다고 가정합니다 . A는 C ++ 11 표준으로 컴파일되었습니다. B는 C ++ 14 표준으로 컴파일되었습니다. C는 C ++ 17 표준으로 컴파일되었습니다. 단순화를 위해 모든 헤더가 세 가지 표준 버전간에 의미가 변경되지 않은 구조 만 사용하여 C ++ …
101 c++  c++11  linker  c++14  abi 

16
템플릿 기반 C ++ 클래스를 .hpp / .cpp 파일로 분할-가능합니까?
.hpp와 .cpp파일 사이에 분할 된 C ++ 템플릿 클래스를 컴파일하려고하면 오류가 발생 합니다. $ g++ -c -o main.o main.cpp $ g++ -c -o stack.o stack.cpp $ g++ -o main main.o stack.o main.o: In function `main': main.cpp:(.text+0xe): undefined reference to 'stack<int>::stack()' main.cpp:(.text+0x1c): undefined reference to 'stack<int>::~stack()' collect2: ld returned 1 exit …

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