代码::具有MinGW链接的块失败



我在32位Windows 7上使用Code::Blocks(版本13.12)和MinGW(版本4.7.1)。

在试图构建我的项目时,我在编译步骤后出现了以下错误:

Execution of 'mingw32-g++.exe  -o cb_dlv.exe
...huge list of *.o files...
in 'D:Workspacecb_dlv' failed.

工具链可执行文件当然没有问题,因为我的其他项目编译和链接都很好,所有工具都在正确的位置。从cmd可以看出mingw32-g++.exe,因此PATH变量没有问题。清洁工作空间似乎也没有任何帮助。我已经尝试过移动项目文件,使路径中没有空格,但这也没有帮助。以及重新打开/重新安装/重新启动。

有什么建议吗?

既然我找到了解决方案,就在这里。

主要问题是在Windows7上,命令行的长度限制在32K个字符左右。MinGW编译器和链接器在构建包含大量文件的项目时达到了这一限制。这是MinGW使用的Windows API的一个基本限制。

解决方案:以任何你喜欢的方式缩短命令行:将一些文件合并在一个文件中,将项目分离成几个文件,用长名称重命名子目录,等等。

您是否已将项目设置为使用自定义makefile?您的构建系统变量是什么?对象文件在D:\Workspace\cb_dlv中可用吗?这是编译日志的唯一输出,还是之前有其他输出?您的项目的构建目标是否合理设置?

您应该看到构建系统日志,在最后一个链接阶段发生之前,它正在将您的c/c++文件编译为对象文件,例如:

mingw32-g++.exe -c D:Workspacecb_dlvfile.c -o D:Workspacecb_dlvobjDebugfile.o

请再把这个问题充实一下,我也许能帮你。

最新更新