私はこれらの3つのファイルを一緒にリンクしようとしています。教訓的な例ですが、私は3つのファイルをコンパイルするさまざまな組み合わせを試しましたが、何が間違っているのかわかりません。この簡単なコードのものが間違っていても。Cファイルをコンパイルする際の問題
私が理解しようとしているのは、メインファイルのヘッダーファイルからインクルードするために、関数の宣言を別のファイルに分ける方法です。少なくとも、これは私が考え出したものです。先生は.hファイルと2つの.cファイルを持っているために、例を設定します。ここでは、彼らは...
extern int foo(int);
使用がfoo.h
foo.cの
int foo(int x){
return x==42 ? 1 : 0;
}
を
#include <stdio.h>
#include "foo.h"
int main(){
printf("foo(42) == %d \n", foo(42));
getchar();
return 0;
}
-foo.c私は誰かがこのを通じて私を導くことを願って、私は別のソリューションを必要としない、これら3で私を助けてくださいだけBECAをファイル先生の目的を使用してこれはだった。
gcc -Wall use-foo.c foo.cをコンパイルしてa.outを取得し、./a.outで実行しますが、foo.hがgccを呼び出すカレントディレクトリにあることを確認してください。 –
extern int foo(int)は必要ありません。 Cの関数は自動的にexternになります。int foo(int); –
'gcc use-foo.c foo.c'または' gcc -c foo.c -o foo.o'そして 'gcc use-foo.c foo.o' – BLUEPIXY