我第一次尝试使用多个文件构建程序。 只用 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
什么可能导致此类错误,我应该如何处理? 使用带有 gcc 的 Linux Mint (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 文件类似
关于gcc - g++ 输出 : file not recognized: File format not recognized,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17126384/