[解決済み】ファイル形式が認識されない。GCCを使用してリンカスクリプトとして扱う
2022-02-06 02:53:56
質問
私はMakefileの初心者で、file1.c, file2.c, file1.hの3つのファイルからexFileという実行ファイルを作ろうとしているところです。以下は私が得たものです。
all: exFile
exFile: file1.o file2.o
gcc -Wall -g -m32 repeat.o show.o -o repeat
file1.o: file1.c file1.h
gcc -Wall -g -m32 -S file1.c -o file1.o
file2.o: file2.c
gcc -Wall -g -m32 -S file2.c -o file2.o
この形式のmakefileをウェブで探したのですが、手つかずでした。 コンパイルしようとすると、こうなります。
usr/bin/ld:file1.o:1: file format not recognized; treating as linker script
アセンブリファイルを使用してプログラムをコンパイルしたことがありますが、cファイルやfile1.hファイルをどうすればいいのかよくわかりません。file1.cはfile1.hを含むので、それらをリンクしなければならない(と思う?) 何か提案や参考文献へのリンクがあればありがたいです。
どのように解決するのですか?
には2つの問題があります。
gcc
コマンドラインを使用します。 第一に、あなたが指定しているのは
-S
フラグは、gccがオブジェクトコードではなくアセンブリコードを生成するようにします。 第二に
-c
というように、2つのオブジェクトファイルではなく
これらのエラー以外にも、パターンルールを使用することでmakefileを簡略化することができます。 その代わりに、次のようなものを試してみることをお勧めします。
-S
あるいは、EmployedRussianが指摘するように、GNU makeの組み込み機能をもっと活用した、もっと最小限のものでもよいでしょう。
プレfile1.o
関連
-
[解決済み】gcc makefileのエラー。"No rule to make target ..." (ターゲットを作るルールがない)
-
[解決済み】ファイル形式が認識されない。GCCを使用してリンカスクリプトとして扱う
-
[解決済み] gccの-lpthreadオプション
-
gccコンパイルオプション -fpermissive
-
[解決済み] コンパイル時に127のエラーが発生する。
-
[解決済み] gcc/g++とcc1/cc1plusの違いは何ですか?
-
[解決済み] cygwinにgccをインストールするにはどうしたらいいですか?
-
[解決済み】gcc makefileのエラー。"No rule to make target ..." (ターゲットにするルールがありません)
-
[解決済み】すべてのgcc警告を無効にする
-
[解決済み] ライブラリヘッダからのGCC警告を抑制する方法は?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] gcc エラー : `itoa' への未定義の参照
-
[解決済み] g++ 出力: ファイルが認識されません。ファイル形式が認識されない
-
[解決済み] gcc/g++とcc1/cc1plusの違いは何ですか?
-
[解決済み] シュール vs サール ... x86 アセンブリ gnu
-
[解決済み] gccのオプションにある-m32、-m64、nothingの違いは何ですか?
-
[解決済み] LD_LIBRARY_PATH と LIBRARY_PATH の比較
-
[解決済み] CFLAGS, CCFLAGS, CXXFLAGS - これらの変数はいったい何を制御しているのでしょうか?
-
[解決済み】GCCのプリプロセッサー定義のダンプ
-
[解決済み] ビルドターゲットの外にgccのデバッグシンボルを生成する方法は?
-
[解決済み] CMakeに新しいGCCのパスを指定する方法