gpt4 book ai didi

c++ - Eclipse CDT 与 Cygwin GCC : automatic discovery of symbols and paths

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:27:27 25 4
gpt4 key购买 nike

我使用 Eclipse CDT 和 Cygwin GCC 3 作为编译器。我的项目正在使用自定义 Makefile。

问题是在调试代码时,它找不到源文件,即使我添加了自定义路径映射:/cygdrive/c <-> c:\

除了我得到所有标准头文件的“ Unresolved inclusion ”这一事实之外,即使程序编译并运行良好也是如此。

我将问题追溯到“自动发现”选项,该选项显示以下错误:

screenshot1

请注意,我确保工作区目录位于没有任何空格的路径上。奇怪的是,当我在 shell 中运行那个有问题的命令时,它运行得很好,输出如下:

$ gcc -E -P -v -dD C:/Users/Amro/workspace/.metadata/.plugins/org.eclipse.cdt.make.core/specs.c
Reading specs from /usr/lib/gcc/i686-pc-cygwin/3.4.4/specs
Configured with: /managed/gcc-build/final-v3-bootstrap/gcc-3.4.4-999/configure --verbose --program-suffix=-3 --prefix=/usr --exec-prefix=/usr --sysconfdir=/etc --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --enable-languages=c,ada,c++,d,f77,pascal,java,objc --enable-nls --without-included-gettext --enable-version-specific-runtime-libs --without-x --enable-libgcj --disable-java-awt --with-system-zlib --enable-interpreter --disable-libgcj-debug --enable-threads=posix --enable-java-gc=boehm --disable-win32-registry --enable-sjlj-exceptions --enable-hash-synchronization --enable-libstdcxx-debug
Thread model: posix
gcc version 3.4.4 (cygming special, gdc 0.12, using dmd 0.125)
/usr/lib/gcc/i686-pc-cygwin/3.4.4/cc1.exe -E -quiet -v -P -D__CYGWIN32__ -D__CYGWIN__ -Dunix -D__unix__ -D__unix -idirafter /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api -idirafter /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../i686-pc-cygwin/lib/../../include/w32api C:/Users/Amro/workspace/.metadata/.plugins/org.eclipse.cdt.make.core/specs.c -mtune=pentiumpro -dD
ignoring nonexistent directory "/usr/local/include"
ignoring nonexistent directory "/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../i686-pc-cygwin/include"
ignoring duplicate directory "/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../i686-pc-cygwin/lib/../../include/w32api"
#include "..." search starts here:
#include <...> search starts here:
/usr/lib/gcc/i686-pc-cygwin/3.4.4/include
/usr/include
/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api
End of search list.
#define __STDC_HOSTED__ 1
#define __GNUC__ 3
[.... truncated ....]
#define __unix__ 1
#define __unix 1

我也试过手动添加到包含路径:

screenshot2

我如何解决这个问题,以便它发现包含路径和定义的符号?我应该尝试关闭自动发现并在 .cproject 文件中硬编码所需的路径吗?感谢您提供任何帮助(我只要求您不要建议使用 MinGW 而不是 Cygwin!)

最佳答案

您经常提示混合使用 eclipse 和 cygwin。问题的症结在于eclipse只了解windows环境& cygwin,还不是很了解。

在 eclipse windows 风格中定义你的路径。还有就是/usr 在 C:\cygwin 下,你必须给它完整的路径。否则 eclipse 将尝试在 c:\usr 下找到它,结果是空的。

此外,您的路径定义是附加到还是替换了您的 Windows 环境?与替换相比,您可能更愿意添加到您的环境中。

从未尝试过自动检测 - 您可能必须在 .cproject 中对这些路径进行硬编码

关于c++ - Eclipse CDT 与 Cygwin GCC : automatic discovery of symbols and paths,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1450654/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com