2010-11-19 3 views

답변

2

어떤 오브젝트 파일이나 라이브러리 terminate이 살고 있는지 알아야하고 컴파일/링크 명령에 포함시켜야합니다.

는 객체 또는 소스 파일에 있다면, 당신의이 gcc 정상에 따라 명령을 (당신이 방법은 아마도 유사합니다하지 않을 경우,gcc를 사용하여 실제로 있어 가정)에 제공합니다. 라이브러리에있는 경우 -L (라이브러리 경로) 및 -l (라이브러리 이름) 옵션을 조사해야합니다.

-2

void terminate(void) { raise(9); }

8

terminate이 사용한다, C++ 표준 라이브러리에 정의 된, 그래서 당신의 것을 연결하고 있는지 확인하십시오. 당신이 컴파일하기 위해 GCC를 사용하는 가정하는 g++ 소스 코드를 컴파일 실행, 하지gcc 실행 : g++로 실행하면

g++ source.cc -o output 

, 링커가 자동으로 (된 libstdC++) C++ 표준 라이브러리에 연결합니다. 대신 일반 gcc로 GCC를 실행하거나 직접 링커 ld를 호출 할 경우에, 당신은

gcc source.cc -o output -lstdc++ # Compile directly from source 
ld source1.o source2.o -o output -lstdc++ # Link together object files 
: 예컨대, 자신이 라이브러리에 링크 -lstdc++를 추가해야
관련 문제