1. ホーム
  2. gcc

[解決済み】g++ output: file not recognized: ファイル形式が認識されない

2022-02-16 20:45:44

質問内容

初めて複数のファイルを使ったプログラムをビルドしようとしています。 今までmain.cppだけでコンパイルして問題が起こったことはありません。 以下のコマンドを実行すると、このような結果になります。

$ g++ -c src/CNumber.cpp src/CNumber.h -o src/CNumber.o
$ g++ -c src/CExprPart.cpp src/CExprPart.h -o src/CExprPart.o
$ g++ -c src/CExpr.cpp src/CExpr.h -o src/CExpr.o
$ g++ -c src/main.cpp -o src/main.o
$ g++ src/CNumber.o src/CExprPart.o src/CExpr.o src/main.o -o execprogram
src/CNumber.o: file not recognized: File format not recognized
collect2: error: ld returned 1 exit status

このようなエラーが発生する原因と対処法を教えてください。 Linux Mint と gcc (Ubuntu/Linaro 4.7.2-2ubuntu1) を使用しています。 ありがとうございます。

解決方法を教えてください。

これは間違いです。

 g++ -c src/CNumber.cpp src/CNumber.h -o src/CNumber.o

.h ファイルをコンパイルしてはいけません。そうすると、プリコンパイルされたヘッダーファイルが作成され、実行ファイルを作成するのに使用されません。 上記は単に

 g++ -c src/CNumber.cpp -o src/CNumber.o

他の.cppファイルをコンパイルする場合も同様です。