2011-03-20 26 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