irc.freenode.netの## Cのリンクについて話した後、私は学んだいくつかのコンセプトを試してみました。奇妙なリンク状況
私はmain.cの名前の、このファイルを持っている:
int main(void) {
func();
return 0;
}
そしてtest.cの名前のこのファイル:
#include <stdio.h>
void func(void) {
printf("Hello.\n");
}
何TEST.Hファイルはありません。
$ gcc -c main.c
$ gcc -c test.c
$ gcc main.o test.o
$ ./a.out
Hello.
$
をし、それが動作します:
私はこれを行います。最初の呼び出しでgccがmain.cファイル内で呼び出された関数func()を知らないと不平を言ってはいけませんか?私はそのプロトタイプや実装にファイルを含めていませんでしたが、gccはオブジェクトコードをコンパイルして正常な実行可能ファイルにすることができます。そこには何があったのですか?
ありがとうございます。
ありがとう! – jpmelos
常に、-Wallを使用するべきであることを示す優れた方法です。たぶん-Wall -W。おそらく - ぺだれ。 –