進來在爲家裏寶寶編寫C/C++教程講義,想用Eclipse做個project,裏面每個文件是一個演示程序或者練習的答案。由於每個源代碼文件都是完整的,都會有main函數,因此就會導致鏈接時出錯,提示main函數重複定義。看到Eclipse有多build target的功能,就考慮使用這個功能來爲每個源代碼文件構建一個target來解決main函數重複定義的問題。查了很多資料,都說要用分別創建不同的makefile來解決。我懶得寫makefile,也暫時不打算讓家裏小傢伙學習makefile那一大套語法規則,所以就琢磨從eclipse自身已有的菜單、對話框界面下手。研究了一番,總算琢磨出來了設定方法。
步驟如下:
1. 在Project Explorer視圖中鼠標右擊project名稱,在彈出菜單裏選擇"Build Configurations"菜單中的"Manage ..."菜單項;
2. 在彈出的"Manage Configurations"對話框中點擊"New ..."按鈕:
3. 在彈出的"Create New Configuration"對話框中輸入新的Target名稱,"copy settings from"選"Existing configuration"或"Default configuration",在右邊的列表框中選一個用於作爲母版的現有configuration,一般可選用eclipse內置的debug。
4. 點擊"OK"按鈕後,即創建了一個新的Build Target。
5. 接下來,要將project中不需要被包含在剛剛建立的target中的源代碼文件剔除。鼠標右擊需要從build target中剔除的源代碼文件,在彈出菜單中選擇"Resource configurations"菜單的"Exclude from build ..."菜單項:
6. 在彈出的"Exclude from build"對話框中勾選不包含此代碼文件的build target,並點擊"OK"按鈕:
到這時候,還只是build target配置好了,還沒法運行這個target,還得在Debug Configurations和Run Configurations中設定對應的調試和運行配置。
7. 選擇Run菜單的"Run Configurations ..."菜單項:
8. 在彈出的"Run Configurations"對話框中,選中左側的"C/C++ Application",然後點擊對話框上方的"new launch configuration"按鈕:
9. 在右側輸入運行配置的名稱、可執行文件所在相對路徑和名稱,在build configuration列表中選擇此前創建的build configuration,並點擊apply使之生效:
至此,完成了多target的配置。在eclipse的主界面上可以看到此前設定的結果:
可以看到,在eclipse中配置多target實在是一件很麻煩的事情,遠不及在Code::Blocks中來得方便。