シンプルな "Hello World!"私のデスクトップのhello.cという名前のcプログラム:WindowsでシンプルなプログラムをMingw GCCにリンクするには
#include <stdio.h>
int main() {
printf("Hello world!\n");
return 0;
}
次のコマンドを実行します。
- 私はそれを事前処理:私はそれをコンパイル> hello.i
- のcppのhello.c:のgcc -S hello.i
- 私はそれを組み立てる:として - o hello.o hello.s
これまでのところすべて良いです。しかし、私はそれをリンクすることはできません。他のコマンドの中でも、次のように試してみました。
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を使用しています。]事前に感謝します。
? "Nothing works"はエラー状況の非常に有用な説明ではありません。 – tofro
gccはコンパイラです。このコマンドは、すべての作業を実行して実行可能ファイルを生成します。私は段階的に進んでいた。今私は最後のステップで、リンカー(ld)にリンクしたいと思います。 –
なぜあなたはリンクしていますか?ここにアセンブリファイルがありますか?あなたの全体的な目標は何ですか(アセンブリとCファイルをリンクするには?) – amanuel2