Code ::具有MinGW链接的块失败

时间:2014-08-29 13:01:56

标签: c++ c linker mingw codeblocks

我在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:\Workspace\cb_dlv' failed.

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

有什么建议吗?

2 个答案:

答案 0 :(得分:1)

由于我找到了解决方案,现在就是。

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

解决方案:以您喜欢的任何方式缩短命令行:将一个文件合并到一个单独的项目中,将多个文件合并为多个,重命名具有长名称的子目录等。

答案 1 :(得分:0)

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

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

mingw32-g++.exe -c D:\Workspace\cb_dlv\file.c -o D:\Workspace\cb_dlv\obj\Debug\file.o

请更多地充实这个问题,我也许可以帮助你。