간단한 "Hello World!" c 프로그램, 내 데스크탑에 hello.c라는 이름을 붙였습니다 :Windows에서 간단한 프로그램을 Mingw GCC와 연결하는 방법
#include <stdio.h>
int main() {
printf("Hello world!\n");
return 0;
}
다음 명령을 실행합니다.
- I 사전 처리 함께 : GCC는 아가야에게 내가 그것을 조립
- -S : 의 cpp에서는 hello.c> 아가야
- 나는 그것을 컴파일로 을 - 안녕하세요. 안녕하세요.
지금까지 모두 좋았습니다. 하지만, 나는 그것을 연결할 수 없습니다. 다른 명령들 중에서도 다음과 같이 시도했습니다.
ld -o hello.exe hello.o
ld -o hello.exe hello.o -lgcc
ld -o hello.exe hello.o -nostdlib -lgcc
아무 것도 작동하지 않습니다. 내가 매 경우에 얻을 링크 오류는 다음과 같습니다
hello.o:hello.c:(.text+0x9): undefined reference to `__main'
hello.o:hello.c:(.text+0x15): undefined reference to `puts'
어떻게 내가 마지막으로 실행 프로그램 hello.exe을 생산하기 위해이 조립 된 프로그램 hello.o를 연결할 수 있습니까? 나는 무엇을 놓치고 있습니까? [Windows 8.1, Mingw 버전 0.6.2 사용.] 미리 감사드립니다.
? "아무것도 작동하지 않습니다"는 오류 상황에 대한 매우 유용한 설명이 아닙니다. – tofro
gcc는 컴파일러입니다. 이 명령은 실행 파일을 생성하는 모든 작업을 수행합니다. 나는 단계적으로 가고 있었다. 이제 마지막 단계에서 링커 (ld)와 연결하고 싶습니다. –
왜 연결하고 있습니까? 여기에 어셈블리 파일이 있습니까? 그리고 전반적인 목표는 무엇입니까 (어셈블리와 C 파일을 링크하려면?)? – amanuel2