2011-03-20 28 views
8

在我的场景中,我在CDT Eclipse中有一个C++项目。然而,这个项目相当于个人(帮手)程序的集合,而不是一个复杂的应用程序。因此我希望能够单独构建和运行它们。Eclipse CDT构建/在文件基础上运行

我的项目结构非常简单,看起来像:

src/app1.cpp 
src/app2.cpp 
src/... 

请注意,我没有共同的头文件和库。不过,我希望能够通过创建例如程序来为这个项目添加程序。 SRC/appx.cpp

理想我想有快捷键

  • “建设当前打开的.cpp”

任何建议 “当前打开的.cpp的运行二进制”如何实现这种行为,如果可能的话,无需额外的插件?

回答

5

成功实现目标的直接方法是使用CDT创建一个Makefile项目,并为您的每个应用程序在您的Makefile中添加一个新的目标规则。您甚至可以使用SCons或其他构建系统与CDT Makefile项目并获得相同的效果。

您还可以诱使托管构建创建可执行文件而不是目标文件。从项目属性中删除-c选项其他标志 C++编译器设置。这将为您的每个源文件生成一个单独的应用程序文件。

构建目录内部创建的应用程序文件将具有对象文件扩展名,并且它们将不可执行。

postbuild.sh为Linux:

chmod +x *.o 
rename -v 's/\.o$//' *.o 

postbuild.bat对于Windows:要解决这个问题,你可以在你的项目目录,例如添加后生成脚本

rename *.o *.exe 

加入../postbuild.sh../postbuild.bat后作为构建设置中的构建后命令,您的应用程序将准备运行。右键单击这些可执行文件中的任意一个,然后选择Debug AsRun As,然后将创建一个新的运行配置。

此外,您将不得不停止托管版本的链接器以防止出现错误。这可以通过将链接器命令更改为true(Linux)或true.exe(Windows,msys)来实现。

+0

这当然可以让我独立构建/运行不同的应用程序。但是,例如添加新应用程序需要付出相当大的努力。我正在寻找一种更方便的方式,它使用文件本身作为构建/运行的对象,类似于针对各个java类的“作为应用程序运行” – dcn 2011-03-20 20:05:06

+0

@dcn:请参阅更新的答案并查看它是否有效。我已经在Windows下测试了它并切换到Ubuntu来测试它。如果它不适合你,你的反馈将是有价值的。 – 2011-03-20 20:39:57

+0

该解决方案确实有效。坦率地说,我曾希望使用一些我尚未发现的eclipse项目选项来提供一个更清洁/非棘手的解决方案,但我的直觉表明你的建议是一样的。 – dcn 2011-03-20 20:50:18