日食+;CDT&x2B;Cygwin:你是如何解决这个问题的;“多目标”;缺陷
更新1: 我原来的帖子太长,掩盖了真正的问题。当调用Make时,我已经准确地发现了导致“多目标”错误的原因 更新2: 我发现这个“多目标”错误是由GNU Make版本3.8.1引起的(请参阅和)。GNU Make 3.8.1是当前随Cygwin发布的GNU Make。总结一下链接:旧的v3.8.0处理windows路径很好,新的v3.8.1报告windows路径错误(可能是FSF的被动攻击?)日食+;CDT&x2B;Cygwin:你是如何解决这个问题的;“多目标”;缺陷,c,eclipse,makefile,cygwin,eclipse-cdt,C,Eclipse,Makefile,Cygwin,Eclipse Cdt,更新1: 我原来的帖子太长,掩盖了真正的问题。当调用Make时,我已经准确地发现了导致“多目标”错误的原因 更新2: 我发现这个“多目标”错误是由GNU Make版本3.8.1引起的(请参阅和)。GNU Make 3.8.1是当前随Cygwin发布的GNU Make。总结一下链接:旧的v3.8.0处理windows路径很好,新的v3.8.1报告windows路径错误(可能是FSF的被动攻击?) 当您在Eclipse+CDT+Cygwin中启动一个新项目时,没有外部includes/librar
当您在Eclipse+CDT+Cygwin中启动一个新项目时,没有外部includes/libraries,一切都很好 当我尝试使用外部包含/库时,我就遇到了“多目标”错误 以下是在Windows+Eclipse+CDT+Cygwin上重现该漏洞所需的步骤:
# NOTE: Error happens when the first "C:/" occurs
src/main.d src/main.o: ../src/main.c C:/dir1/dir2/ExternalLibrary.h
Make获取错误“Multiple targets”的原因是它看到“:”,这是用于声明目标的Make语法的一部分。当有两个“:”时,会出错,因为它不知道如何处理“多个目标”
我无法手动编辑makefiles,因为它们会立即重新生成和覆盖[UPDATE:by Eclipse CDT]。鉴于我无法手动编辑生成文件。
也有这样的问题。问题是我在项目设置中包含了路径。然后我有了绝对路径。使用相对路径在文件夹设置中包含路径时,效果很好。在更新cygwin之后,我仍然遇到了eclipse/CDT Juno的同样问题 要解决此问题,请执行以下操作: 您需要make 3.80-1或更高版本,这需要cygintl-2.dll。 从下载make3.80-1 以及所需的Dll 从某处提取 将cygwin/bin中的make重命名为makeVersion,例如make3.82.90 复制cygintl-2.dll并使其成为cygwin/bin 尝试在eclipse中构建项目两次,问题应该会消失
gerdi[脚注1]这是我读到的一个例子。这个链接描述了我遇到的错误。。。bug报告来自bugs.eclipse.org和2005年。他们的解决方案是:编辑make文件,获取不同的make版本,等等。我不能更改make的版本。我不能手动编辑makefile,因为它会被自动覆盖。[脚注2]这是我读到的另一个例子。这个链接描述了我遇到的错误。。。错误报告来自stackoverflow.com。上面的stackoverflow.com链接类似,但不是重复的。。。因为上面链接中的解决方案对“手动编辑makefile”的解决方案很满意,而这对我来说不是一个选项。(他们还建议“从网络驱动器运行所有东西”…或从cygwin shell运行cygwin…这些都是黑客攻击,而不是解决方案。)
/cygdrive/c/dir1/dir2/ExternalLibrary.h
有效吗?发现@pmg我确实尝试过将include目录设置为“/cygdrive/c/dir1/dir2”(我还尝试了其他斜杠)从“c:\dir1\dir2”开始。进行更改后,编译器没有看到.h文件。因此,我从编译器那里得到了一堆错误,不知道.h文件在哪里,也不知道“未定义”符号。看起来你走对了路,至少你发现了问题。对不起,我帮不上更多的忙:我不使用Eclipse或Cygwin。不知道GNU为什么会这样做。在我看来,“如果它没有坏,就不要修理它”。了解GNU/FSF对Windows的立场。。。也许他们是在消极攻击?