【问题标题】:Eclipse CDT build/run on file basisEclipse CDT 基于文件构建/运行
【发布时间】:2011-07-19 05:12:06
【问题描述】:

在我的场景中,我在 CDT Eclipse 中有一个 C++ 项目。然而,这个项目更像是单个(帮助)程序的集合,而不是一个复杂的应用程序。因此,我希望能够单独构建和运行它们。

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

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

请注意,我没有通用的头文件或库。但是,我希望能够通过创建例如将程序添加到该项目中。 src/appx.cpp

理想情况下,我希望有

的快捷方式
  • “构建当前打开的 .cpp”
  • “运行当前打开的.cpp的二进制文件”

如果可能不使用其他插件,关于如何实现此行为的任何建议?

【问题讨论】:

    标签: c++ eclipse ide eclipse-cdt


    【解决方案1】:

    实现您的目标的直接方法是使用 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) 来实现。

    【讨论】:

    • 当然,这让我可以独立构建/运行不同的应用程序。但是,例如添加新应用程序需要付出相当多的努力。我正在寻找一种更方便的方法,将文件本身用作构建/运行的对象,类似于单个 java 类的“作为应用程序运行”
    • @dcn:请查看更新后的答案,看看它是否有效。我已经在 Windows 下对其进行了测试,并切换到 Ubuntu 进行测试。如果它对您不起作用,您的反馈将很有价值。
    • 这个解决方案确实有效。坦率地说,我曾希望使用一些 eclipse 项目选项来获得更干净/不棘手的解决方案,但我还没有找到,但我的直觉说你的建议是最好的。
    • this 也可能有用。
    猜你喜欢
    • 2015-09-24
    • 1970-01-01
    • 2013-11-30
    • 1970-01-01
    • 2012-06-22
    • 2010-12-21
    • 2011-01-28
    • 2012-03-31
    • 1970-01-01
    相关资源
    最近更新 更多