는 다음 C 프로그램을 가지고 : 그것은 C 표준 라이브러리에서 아무것도를 사용하지 않을 것프로그램을 연결하는 데 stdlib가 필요한 이유는 무엇입니까?
int main(){}
.
-nostdlib을 통해 연결을 해제 할 수 있다고 가정했습니다.
그러나, 다음과 같은 오류가 발생합니다
$ gcc -nostdlib -o main main.c
/usr/bin/ld: warning: cannot find entry symbol _start; defaulting to 0000000000400150
사람이 _start
상징이고 누가 그것을 제공 할 책임이 무엇인지 명확히 할 수 있습니까?
-nostdlib
을 사용하면 어떻게 될까요? 워드 프로세서 당
는, 나는 또한 시도 :
$ gcc -nostdlib -o main main.c -lgcc
같은 행동은 그 소리와 함께 볼 수있다.
먼저주의해야 할 것은 * 링커 * 오류입니다. 컴파일에 실패 했다는 의미는 아닙니다. – Dmitri
@Dmitri 예, 제목을 수정하겠습니다. –
'-lgcc'가 끝나야합니다. Gcc는 라이브러리가 만나는 지점에서 라이브러리를 처리하므로 이전에 언급 한 객체의 심볼을 확인하는 데만 사용됩니다. – rici