如何处理Eclipse CDT + Cygwin?

问题描述 投票:8回答:6

最近我安装了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 /文件扫描程序信息配置文件。

c++ eclipse cygwin eclipse-cdt
6个回答
6
投票

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

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

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


4
投票

2
投票

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


2
投票

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

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


0
投票

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

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

  1. 使用软件包binutilsgcc-coregcc-g++gdbmake安装cygwin。我之前没有打过任何包裹。所以我在安装cygwin后安装了软件包。您可以通过重新运行cygwin的setup exe(this answer中的Point 3)或使用apt-cyg中描述的this answer来安装它们:
  2. 在eclipse中安装CDT plugin或安装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软件包是否可访问且未发出命令未找到错误。对于gccg++make,它应该给输入或目标文件找不到错误。对于gdb,它应该启动gdb提示,你可以通过在Quit提示符中键入gdb来逃避。
  5. 开始日食并做File > New > C/C++ Project
  6. 选择C / C ++ Managed build:enter image description here 点击Next>
  7. 提供合适的项目名称。在工具链中选择Cygwin GCCenter image description here 它应该创建新项目,并在环境变量中指定的cygwin lib目录中包含所需的头文件: enter image description here
  8. 右键单击在项目浏览器中创建的项目>悬停在上下文菜单中的新建>单击源文件夹。将名称src提供给新的源文件夹。 enter image description here
  9. 右键单击源文件夹并添加新的C源文件HelloWorld.center image description here
  10. 右键单击该项目,然后选择Build Project。它应该创建调试文件和可执行二进制文件: enter image description here
  11. 右键单击打开的c文件,Run as > Local C/C++ Application。它应该运行在前面步骤中生成的可执行文件。

0
投票

我运行的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

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

希望这可以帮助。

© www.soinside.com 2019 - 2024. All rights reserved.