我不使用Eclipse作为IDE,并且没有兴趣这样做.但是,我喜欢它的源代码级调试.
有没有什么方法可以用它来调试C++ Linux应用程序而无需通过创建项目的仪式?(实际上,我可以像使用gdb的前端一样使用它吗?)
如果没有,我需要遵循什么步骤来创建一个项目,我可以用它来调试使用Makefile或其他工具(SCons,CMake等)构建的现有C++程序.我不想在Eclipse中"开发"; 我需要做的就是调试.
在构建设置中,我让它DEBUG在调试构建配置中定义,以便我可以根据构建的类型使我的代码分开.
但是在Eclipse中,它会使预处理器排除的代码部分变暗,而且当我更改设置时(无论我当前是否正在构建调试或发布),这部分都无法跟上.所以,我有一堆永远变暗的代码,Eclipse索引器和其他有用的功能在这些区域内不起作用.
怎么修?有人遇到过这种情况么?
更新:仍然有这个问题.我最终放弃了我的单元测试构建配置,并简单地将该功能放入命令行开关中.这样我就可以在编写单元测试时编写索引.
我正在使用此代码中的示例程序http://sicktoolbox.sourceforge.net/ > http://sourceforge.net/projects/sicktoolbox/files/.它基本上是一个距离扫描仪驱动程序.我想要运行的程序是在sicktoolbox-1.0.1/c ++/examples/lms/lms_plot_values中,以防你想看到我正在谈论的代码.
无论如何,lms_plot_values项目文件夹包含gnuplot_i.cc,gnuplot_i.hpp,main.cc,Makefile,Makefile.am,Makefile.in.所以我把前三个文件放在我的Eclipse Indigo CDT中,编译(没有编译错误,一切都已经在Eclipse中正确链接,并且添加了所有需要的库),但是这个示例程序被编写为接受命令行参数.这是代码得到的.
/*!
* \file main.cc
* \brief Illustrates how to acquire a measurements from the Sick
* LMS 2xx using the configured measuring mode.
*
* Note: This example should work for all Sick LMS 2xx models.
*
* Code by Jason C. Derenick and Thomas H. Miller.
* Contact derenick(at)lehigh(dot)edu
*
* The Sick LIDAR Matlab/C++ Toolbox
* Copyright (c) 2008, Jason C. Derenick and Thomas H. Miller
* All rights …Run Code Online (Sandbox Code Playgroud) 我正在使用Eclipse CDT尝试使用Ogre 3D引擎编译项目.但不知何故,mingw无法找到我链接的静态库.
这些是错误消息:
c:/ mingw/bin /../ lib/gcc/mingw32/4.6.1 /../../../../ mingw32/bin/ld.exe:找不到-lzziplib_d
c:/ mingw/bin /../ lib/gcc/mingw32/4.6.1 /../../../../ mingw32/bin/ld.exe:找不到-lzlib_d
c:/ mingw/bin /../ lib/gcc/mingw32/4.6.1 /../../../../ mingw32/bin/ld.exe:找不到-lfreetype_d
...等等.对于每个库,列表都是这样的.
您可能已经看到,我已经知道ld.exe似乎自动生成的(IMO)奇怪的"lib"和".a"添加内容.这些库都正确命名.例如,"freetype_d"实际上是"libfreetype_d.a".
我之前也添加了正确的库路径,如下所示:
-L"C:\ Coding\Ogre\make-debug\sdk\lib\Debug \" - L"C:\ Coding\Ogre\make-debug\sdk\lib\Debug\opt \"
每个库文件都在这两个文件夹中.
这是Eclipse CDT显示的完整命令行:
g ++ -L"C:\ Coding\Ogre\make-debug\sdk\lib\Debug \" - L"C:\ Coding\Ogre\make-debug\sdk\lib\Debug\opt \" - o"OgreTestMinGW" ./BaseApplication.o ./LowLevelOgre.o -lzziplib_d -lzlib_d -lfreetype_d -lFreeImage_d -lOIS_d.dll -lOgreMainStatic_d -lOgrePagingStatic_d -lOgrePropertyStatic_d -lOgreRTShaderSystemStatic_d -lOgreTerrainStatic_d -lRenderSystem_GLStatic_d -lPlugin_ParticleFXStatic_d -lPlugin_PCZSceneManagerStatic_d -lPlugin_OctreeZoneStatic_d -lPlugin_OctreeSceneManagerStatic_d -lPlugin_CgProgramManagerStatic_d -lPlugin_BSPSceneManagerStatic_d
我在这里错过了什么?
CDT/Eclipse项目资源管理器中的这个特殊文件夹图标是什么意思?蓝色的东西看起来像钥匙或螺丝或某种工具.我想这与CVS有关.我在"首选项">"外观">"标签装饰"设置中找不到该信息.
我有一个包含多个项目的工作区,所有这些项目都没有问题.但是,由于未解决的包含,一些项目在编辑器中提供了许多关于未解析符号的警告.大多数是来自工作区中的其他项目或第三方库的标头.
谷歌搜索表明这是索引器的一个问题,但我没有找到任何关于如何解决它的连贯解释 - 我假设我需要将这些库的路径添加到索引器的PATH,但我看不到任何选项那样做(我正在使用Juno).
任何人都可以向我解释如何配置CDT的索引器?
我也得到了未解决的包括两个项目中STL标题的警告.一些STL头被解析但其他的不是,并且两个项目之间的列表似乎不一样(一个找到像vector和iostream这样的东西,但不是sstream或string,另一个找不到iostream) .
可能相关:这些是C++项目,但所有文件扩展名都是.c.我将GCC C Compiler命令更改为'g ++'来编译它们,但我想我还需要对索引器设置做些什么来应对它?
已经有一个线程在这里,其部分回答我的问题.
在Eclipse 3.7.2上,我遵循了那里提供的方法,我可以成功完成创建和设置新错误解析器并将其添加到当前项目的步骤.执行我的Boost.Test(boost rel.1.48.0)单元测试后,在Eclipse控制台上,我得到的输出与没有完成解析时得到的输出相同(例如,在Eclipse外部执行单元测试时(例如在Linux上)终奌站)).我搜索了一个新的Eclipse控制台,其中可以显示解析的单元测试输出(类似于例如Eclipse中的gcov,gprof或cppcheck的控制台),但没有发现任何相似之处.
应该在哪里显示已解析的单元测试输出?如果解析的输出应显示在Eclipse控制台视图中,那么在我的情况下解析可能出错吗?
提前致谢.
PS:感谢casperOne和kleopatra教我礼貌.
我正在尝试使用eclipse cdt(Juno)调试一些fork()机制.我用C编写了程序.
if( -1 == (pid = fork()) ) /* error */
goto cleanup;
else if ( 0 == pid ) /* child */
{
execlp("gcc", "gcc", cFilePath, "-o" , GCC_OUTPUT_FILE_NAME, NULL);
goto cleanup; /* Arrives here only on error! */
}
else if (pid > 0) /* parent - checks: correct pid returns, returns normally, with exit status = 0*/
{
returnedpid = wait(exitStatus);
if( pid != returnedpid || exitStatus == NULL || !WIFEXITED(*exitStatus) || !WEXITSTATUS(*exitStatus) )
goto cleanup; …Run Code Online (Sandbox Code Playgroud) 我是初学者使用eclipse CDT.通常在DEVc ++或其他轻量级IDE中,我们可以直接从桌面打开和编辑单个.cpp文件并运行它.
另一方面,我在eclipse CDT中找不到这个简单的功能!每次我需要运行一个.cpp文件我需要创建一个项目!
对于竞争性编程,例如TOPCODER copetetions或CodeForces,我通常希望快速运行单个文件!
有没有办法在Eclipse CDT中运行单个.cpp文件,而无需每次都创建项目?
我目前有一个带有自定义makefile的C++项目.我告诉eclipse简单地调用make,makefile处理所有内容.该项目构建良好,但eclipse一直强调广义lambda捕获为"语法错误".据我了解:
这是CDT索引器不了解C++ 14语法的问题.
我试过这里的答案:
但他们没有处理我的案例,即Eclipse Luna +自定义makefile项目+ c ++ 14.
这个问题可能与我的有关,但它没有答案[我也没有能力改变索引器]:
有关如何让索引器识别c ++ 14功能的任何想法?
由于某些原因,PS C++ 11功能未突出显示为语法错误.我还应该注意到我在makefile中使用了clang 3.4.2; 显然,它支持c ++ 14.虽然可用的g ++版本是4.4.7,但它不支持c ++ 14.这可能是某种程度上的问题吗?CDT使用系统的g ++作为索引器吗?如果是这样,我如何在不更新g ++的情况下进行更改(我正在使用有限的用户权限并更新它会很麻烦)?
eclipse-cdt ×10
eclipse ×8
c++ ×6
debugging ×2
boost-test ×1
c ×1
c++14 ×1
command-line ×1
cvs ×1
fork ×1
gdb ×1
icons ×1
indexer ×1
ld ×1
makefile ×1
mingw ×1
sensor ×1
unit-testing ×1