gcc - g++ 输出 : file not recognized: File format no

我第一次尝试使用多个文件构建程序。 只用 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/

相关文章:

c++ - #error 请为 _AFXDLL 构建使用/MD 开关

gcc - 使用不同的 gcc 版本构建 boost

ruby - 指定一个任务具有多个依赖项

android - 在 iOS 中,我们在 Android 上是否有类似 Gradle Build

c# - 改进 CI 构建时间 (.NET)

java - 如何升级eclipse内置的ant?

build - 是否可以将 Jenkins 自由式作业转换为多配置作业?

python - 使用 Cython 的 setup_requires?

c# - Visual Studio 开始构建前的漫长等待

c# - NuGet 以代码 -1 退出 - 结果构建失败