2010-09-16 25 views
1

我遇到了Windows CMake/MinGW生成的bug,其中发送到链接器的目标文件数量导致参数列表超过了Windows API允许的最大32k字符。这表现为令人惊讶的无用的“错误运行链接命令:参数不正确”错误。在win32上链接时遇到最大参数长度

有没有人遇到过这个问题,并找到一个解决方法,不涉及重组项目路径或将其拆分成库(因为这两者都是额外的工作)?

例如,我知道ld.exe需要一个@file参数来传递参数,但是当参数变得太长时,可以告诉mingw-make使用这个参数吗?

在msys/sh.exe下运行是否解决了这个限制?

+0

这将有助于知道您正在使用哪个CMake发电机。 MinGW makefiles? MSYS makefiles? nmake makefiles? – 2010-09-16 06:11:59

+0

当参数变得太长时,不要告诉mingw-make使用@response文件,为什么不直接使用它们并节省麻烦? – Reinderien 2010-09-16 06:25:30

+0

@Jack:MingGW makefiles,但它也没有代码块项目(也基于MinGW)。我不认为这个项目建立在msys上,但我会测试。 @Reinderien:因为在较小的链接上很难调试链接器错误(因为命令不会显示使VERBOSE = 1下的文件/参数) – SpliFF 2010-09-16 06:32:49

回答

0

如果我正确地读this bug report,这是一个已知的问题,并已修复。我不确定产品版本字段是指展示错误的版本还是修复错误的版本。

+1

这个错误在CMake 2.8.2中修复了 – RobertJMaynard 2010-09-16 12:43:58

+0

啊,这样可以让事情变得简单然后(我目前使用2.6)。 – SpliFF 2010-09-17 03:35:21