繁体   English   中英

如何处理Eclipse CDT + Cygwin?

[英]How to deal with Eclipse CDT+Cygwin?

最近我安装了Eclipse Indigo Service Release 2(用于JAVA EE)并在线安装了CDT 8.然后我在最新版本中安装了带有gcc,g ++,gdb,make,binutils,automake等的Cygwin。我还创建了环境变量PATH正确。

制作一个新的C ++项目(使用Cygwin GCC工具链)很不错,但在输入HelloWorld程序后,它会显示许多错误和警告。

使用外部构建器时,显示错误

“无法运行程序”make“:???????????”。

使用内部构建器时,它会显示出来

“g ++ -IC:\\ cygwin \\ lib \\ gcc \\ i686-pc-cygwin \\ 4.5.3 \\ include \\ c ++ -O0 -g3 -Wall -c -fmessage-length = 0 -o src \\ test_cpp.o .. \\ src \\ test_cpp.cpp

错误:无法运行程序“g ++”:??????????

发生构建错误,构建停止

在Windows CMD和Cygwin终端中,g ++和make都能很好地工作。

更糟糕的是,Eclipse无法找到包含库,因此我必须将路径C:\\ cygwin \\ lib \\ gcc \\ i686-pc-cygwin \\ 4.5.3 \\ include \\ c ++添加到项目属性 - > C / C ++ Building-> Settings.But之后,出错,它仍然显示,

'std'含糊不清'

'endl'的重载无效

符号'cout'无法解决

在项目属性 - > C / C ++ Building-> Discovery Options中,我将Discovery Profile范围设置为Configeration-wide,将Discovery配置文件设置为GCC /文件扫描程序信息配置文件。

您必须设置Cygwin工具链,首先使用以下软件包安装Cygwin:

binutils
gcc
gcc-core
gcc-g++
gcc-mingw-core
gcc-mingw-g++
make

%cygwin%\\bin添加到PATH环境变量中,然后打开Eclipse,并在打开新的c / cpp项目向导时显示Cygwin工具链。

我有类似的错误,对我有用的是:在设置: 'Project|Properties|C/C++ General|Indexer' ,我取消选中'Allow heuristic resolutions of includes'并保存设置。 在重建之后,我所有的错误如''std'都含糊不清......'消失了。

你有没有检查过你使用的二进制解析器?

右键单击您的项目,属性,C / C ++构建,设置,二进制分析器选项卡,如果您使用的是Windows操作系统或Elf Parser for Linux OS,请选择PE Windows Parser。

使用eclipse + CDT + cygwin-gcc为所有基本步骤编写hello world程序。

你一定错过了从3到7的一些步骤。

  1. 使用包binutilsgcc-coregcc-g++gdbmake安装cygwin。 我之前没有打过任何包裹。 所以我在安装cygwin后安装了软件包。 您可以通过重新运行cygwin的setup exe( 本答案中的第3点)或使用apt-cyg安装它们,如本答案中所述
  2. 在eclipse中安装CDT插件或安装CDT eclipse
  3. 设置Windows path环境变量以包括cygwin bin( C:\\Program Files\\cygwin\\setup\\bin )和lib( C:\\Program Files\\cygwin\\setup\\lib )目录路径。 设置windows classpath环境变量以包含cygwin lib目录路径。
  4. 在Windows命令提示符下运行命令gccg++gdbmake ,检查安装的cygwin软件包是否可访问,并且没有给出命令not found错误。 对于gccg++make ,它应该给输入或目标文件找不到错误。 对于gdb ,它应该启动gdb提示符,您可以通过在gdb提示符下键入Quit来转义它。
  5. 启动eclipse并执行File > New > C/C++ Project
  6. 选择C / C ++托管构建: 在此输入图像描述
    单击Next>
  7. 提供合适的项目名称。 在工具链中选择Cygwin GCC
    在此输入图像描述
    它应该创建新项目,并在环境变量中指定的cygwin lib目录中包含所需的头文件:
    在此输入图像描述
  8. 右键单击在项目浏览器中创建的项目>悬停在上下文菜单中的新建>单击源文件夹。 将名称src给新的源文件夹。
    在此输入图像描述
  9. 右键单击源文件夹并添加新的C源文件HelloWorld.c 在此输入图像描述
  10. 右键单击该项目,然后选择Build Project。 它应该创建调试文件和可执行二进制文件:
    在此输入图像描述
  11. 右键单击打开的c文件, Run as > Local C/C++ Application 它应该运行在前面步骤中生成的可执行文件。

我运行的eclipse版本是Photon(4.8)。 我正在运行cygwin64版本2.10.0(0.325 / 5/3)。

我创建了一个新目录 - foo - 并在其中添加了以下文件:

的CMakeLists.txt:

set(CMAKE_C_FLAGS "-g -O0")
set(CMAKE_CXX_FLAGS "-g -O0 --std=c++17")
add_executable (foo main.cpp)

请注意,源级调试需要“-g -O0”。

main.cpp中:

#include <iostream>

using namespace std;

int
main()
{
    cout << "Hello World" << endl;
    auto i = 5;
    cout << i << endl;
}

在foo目录中,我然后运行:

cmake。

然后我打开了日食。

文件 - >导入C / C ++ - >现有代码作为Makefile项目

点击下一步

我将现有代码位置设置为我的foo目录(通过浏览)

这会自动将我的项目名称设置为foo(如果您愿意,可以更改它)

在“用于索引器设置的工具链”中,现在设置“无”和完成。 我们稍后会解决这个问题。

现在在“Project Explorer”窗格中,右键单击“foo”并转到“Properties”

转到“C / C ++ Build”

转到“工具链编辑器”

取消选中“仅显示兼容的工具链”

在“当前工具链”下拉列表中,选择“Cygwin GCC”

点击“应用并关闭”

再次,在“Project Explorer”窗格中,右键单击“foo”并转到“属性”

转到“C / C ++ Build”

去“环境”

确保正确设置了“CYGWIN_HOME”env变量。 默认设置为“C:\\ cygwin”,但这对我不利并导致很多问题。 就我而言,它是C:\\ cygwin64

点击“应用并关闭”

现在再次右键单击foo项目,然后单击“Build Project”

在项目窗格中的foo下,单击main.cpp以显示它。 在某处设置断点。

点击F11

您应该使用之前设置的断点。

希望这可以帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM