[英]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工具链。
您是否尝试过用于C ++的Eclipse CDT和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的一些步骤。
binutils
, gcc-core
, gcc-g++
, gdb
和make
安装cygwin。 我之前没有打过任何包裹。 所以我在安装cygwin后安装了软件包。 您可以通过重新运行cygwin的setup exe( 本答案中的第3点)或使用apt-cyg
安装它们,如本答案中所述 : path
环境变量以包括cygwin bin( C:\\Program Files\\cygwin\\setup\\bin
)和lib( C:\\Program Files\\cygwin\\setup\\lib
)目录路径。 设置windows classpath
环境变量以包含cygwin lib目录路径。 gcc
, g++
, gdb
和make
,检查安装的cygwin软件包是否可访问,并且没有给出命令not found错误。 对于gcc
, g++
和make
,它应该给输入或目标文件找不到错误。 对于gdb
,它应该启动gdb
提示符,您可以通过在gdb
提示符下键入Quit
来转义它。 File > New > C/C++ Project
Next>
。 Cygwin GCC
: src
给新的源文件夹。 HelloWorld.c
: Run as > Local C/C++ Application
。 它应该运行在前面步骤中生成的可执行文件。 我运行的eclipse版本是Photon(4.8)。 我正在运行cygwin64版本2.10.0(0.325 / 5/3)。
我创建了一个新目录 - foo - 并在其中添加了以下文件:
set(CMAKE_C_FLAGS "-g -O0")
set(CMAKE_CXX_FLAGS "-g -O0 --std=c++17")
add_executable (foo main.cpp)
请注意,源级调试需要“-g -O0”。
#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.