[解決済み】未定義参照 makefile が間違っているのかも?
2022-02-12 21:18:58
質問
以前、レコードの配列セットを宣言する際に問題が発生しました。今思うと、私のMakefileか何かに何か問題があるようです。
以下は私のMakefileです。
EEXEC = proj1
CC = gcc
CFLAGS = -c -Wall
$(EXEC) : main.o set.o
$(CC) -o $(EXEC) main.o set.o
main.o : main.h main.c
$(CC) $(CFLAGS) main.c
set.o : set.h set.c
$(CC) $(CFLAGS) set.c
set.cファイルにはもっと多くの関数がありますが、現在テストしているのはこれらの関数です。
DisjointSet *CreateSet(int numElements);
DisjointSet *MakeSet(DisjointSet *S,int ele, int r);
void Print(DisjointSet *S);
そして、ターミナルで受けているエラーは
main.o: In function `main':
main.c:(.text+0x19): undefined reference to `CreateSet'
main.c:(.text+0x43): undefined reference to `MakeSet'
main.c:(.text+0x5f): undefined reference to `Print'
解決方法は?
このエラーはリンカーエラーで、プログラムをリンクする際にリンカーが 'CreateSet' という名前の関数(など)を見つけることができないことを伝えています。ビルド・コマンドに "set.o" を含めているようなので、なぜそうなるのかはすぐにはわかりません。
make -n"は、"make"が実行するコマンドを、実際に実行することなく表示します。というようなコマンドが表示されると思います。
gcc -o proj1 main.o set.o
これを手作業で実行してみて、どこにたどり着くかを見てみましょう。
関連
-
[解決済み】makefile:4。*** missing separator. 停止する
-
[解決済み] c - 初期化がキャストなしでポインタから整数を作る、さらに2つのコンパイラーエラー
-
[解決済み] Connect: ソケット以外でのソケット操作
-
[解決済み】Makefileの中の.PHONYの目的は何ですか?
-
[解決済み】ポインタへの代入時に互換性のないポインタ型からの初期化警告が発生した
-
[解決済み] C: エラー: ';'トークンの前に ')' があると予想される
-
[解決済み] Cプログラムで「配列の添え字が整数でない」。
-
[解決済み】.axfファイルとは何ですか?
-
[解決済み] GNU Makefile の変数割り当て =, ?=, :=, += の違いは何ですか?
-
[解決済み] makefile の記号 $@ と $< はどういう意味ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Cコンパイルエラーです。Idは1終了ステータスを返した
-
[解決済み】警告:互換性のないポインタ型からの代入
-
[解決済み] clang: error: linker command failed with exit code 1が表示されるのはなぜですか?
-
[解決済み】Cygwin - Makefile-error: ターゲット `main.o' のレシピに失敗しました。
-
[解決済み】cudamalloc()の使用。) なぜダブルポインタなのか?
-
[解決済み】Linuxでexeclp()がどのように動作するのか理解できません。
-
[解決済み】LinuxのI_PUSHに相当するもの
-
[解決済み】.axfファイルとは何ですか?
-
[解決済み】execvp: バッドアドレスエラー
-
[解決済み】whileループの時間複雑性(Big O)はどうやったらわかるの?