Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/151.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Eclipse CDT基于文件构建/运行 在我的场景中,我在CDT Eclipse中有C++项目。然而,这个项目更像是单个(助手)程序的集合,而不是一个复杂的应用程序。因此,我希望能够单独构建和运行它们_C++_Eclipse_Ide_Eclipse Cdt - Fatal编程技术网

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

Eclipse CDT基于文件构建/运行 在我的场景中,我在CDT Eclipse中有C++项目。然而,这个项目更像是单个(助手)程序的集合,而不是一个复杂的应用程序。因此,我希望能够单独构建和运行它们,c++,eclipse,ide,eclipse-cdt,C++,Eclipse,Ide,Eclipse Cdt,我的项目结构非常简单,如下所示: src/app1.cpp src/app2.cpp src/... 请注意,我没有公共头文件或库。但是,我希望能够通过创建例如src/appx.cpp来将程序添加到此项目中 理想情况下,我希望有捷径的 “当前打开的生成。cpp” “运行当前打开的.cpp的二进制文件” 如果可能的话,在没有额外插件的情况下,有没有关于如何实现这种行为的建议?成功的直接方法是使用CDT创建一个Makefile项目,并在Makefile中为每个应用程序添加一个新的目标规则。您甚

我的项目结构非常简单,如下所示:

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

理想情况下,我希望有捷径的

  • “当前打开的生成。cpp”
  • “运行当前打开的.cpp的二进制文件”

如果可能的话,在没有额外插件的情况下,有没有关于如何实现这种行为的建议?

成功的直接方法是使用CDT创建一个Makefile项目,并在Makefile中为每个应用程序添加一个新的目标规则。您甚至可以使用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 As
Run As
,将创建一个新的运行配置


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

这当然允许我独立构建/运行不同的应用程序。然而,它需要相当多的努力来添加新的应用程序,例如。我正在寻找一种更方便的方法,将文件本身用作构建/运行的对象,类似于单个java的“作为应用程序运行”classes@dcn:请查看更新的答案并查看其是否有效。我已经在Windows下测试了它,并切换到Ubuntu进行测试。如果它对你不起作用,你的反馈将是有价值的。这个解决方案确实有效。坦率地说,我曾希望使用一些eclipse项目选项获得一个更干净/不棘手的解决方案,但我还没有找到,但我的直觉告诉我,您的建议是最好的。也可能有用。