如何处理Eclipse CDT + Cygwin?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何处理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%in
添加到PATH环境变量中,然后打开Eclipse,并在打开新的c / cpp项目向导时显示Cygwin工具链。
你试过这个Eclipse CDT and Cygwin tutorial for C++吗?
我有类似的错误,对我有用的是:在设置:'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(this answer中的Point 3)或使用apt-cyg
中描述的this answer来安装它们: - 在eclipse中安装CDT plugin或安装CDT eclipse。
- 设置windows
path
环境变量以包括cygwin bin(C:Program Filescygwinsetupin
)和lib(C:Program Filescygwinsetuplib
)目录路径。设置windowsclasspath
环境变量以包含cygwin lib目录路径。 - 在Windows命令提示符下运行命令
gcc
,g++
,gdb
和make
,以检查安装的cygwin软件包是否可访问且未发出命令未找到错误。对于gcc
,g++
和make
,它应该给输入或目标文件找不到错误。对于gdb
,它应该启动gdb
提示,你可以通过在Quit
提示符中键入gdb
来逃避。 - 开始日食并做
File > New > C/C++ Project
- 选择C / C ++ Managed build:
点击
Next>
。 - 提供合适的项目名称。在工具链中选择
Cygwin GCC
: 它应该创建新项目,并在环境变量中指定的cygwin lib目录中包含所需的头文件: - 右键单击在项目浏览器中创建的项目>悬停在上下文菜单中的新建>单击源文件夹。将名称
src
提供给新的源文件夹。 - 右键单击源文件夹并添加新的C源文件
HelloWorld.c
: - 右键单击该项目,然后选择Build Project。它应该创建调试文件和可执行二进制文件:
- 右键单击打开的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
您应该使用之前设置的断点。
希望这可以帮助。
以上是关于如何处理Eclipse CDT + Cygwin?的主要内容,如果未能解决你的问题,请参考以下文章
程序无法启动,因为缺少 cygwin1.dll...在 Eclipse CDT 中
如何处理 org.eclipse.persistence.exceptions.OptimisticLockExceptio
eclipse 创建web项目时没有自动生成index.jsp 请问如何处理!
如何处理Eclipse错误消息 The declared package does not match the expected package