g ++输出:文件无法识别:无法识别文件格式

Rui*_*rCZ 23 gcc makefile g++ build

我正在尝试第一次使用多个文件构建程序.我从来没有遇到过使用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
Run Code Online (Sandbox Code Playgroud)

什么可能导致这样的错误,我应该怎么做呢?使用Linux Mint和gcc(Ubuntu/Linaro 4.7.2-2ubuntu1).谢谢

nos*_*nos 26

这是错的:

 g++ -c src/CNumber.cpp src/CNumber.h -o src/CNumber.o
Run Code Online (Sandbox Code Playgroud)

你不应该"编译".h文件.这样做会创建预编译的头文件,这些文件不用于创建可执行文件.上面应该只是

 g++ -c src/CNumber.cpp -o src/CNumber.o
Run Code Online (Sandbox Code Playgroud)

类似于编译其他.cpp文件


Bri*_*rns 26

我就遇到了这个错误在建设东西-它竟然是由于以前的版本,而源文件编译成.o文件将失效-这.o文件将是不完整或损坏,所以当我尝试另一个构建它给了这个错误在那个文件上.解决方案只是删除.o文件(或运行make clean,如果你有一个带有该目标的makefile).

(这与原始帖子问题没什么关系,但这是Google搜索错误的第一次点击之一,所以只需在此处添加).

  • 解决了我的问题. (2认同)