簡體   English   中英

在CDT項目中使用不同C ++編譯器的正確方法是什么?

[英]What's the right way to work with a different C++ compiler in a CDT project?

我在Linux上使用Eclipse CDT Mars.2(和Neon RC)。 我的發行版的默認C ++編譯器是GCC 5.3.1,但對於我的一些工作,我使用的是GCC 4.9.3。 我想關於我的項目的一切使用GCC 4.9.3:工具發現,C ++標准庫,包含文件路徑,索引器,預處理 - 所有這些。

這樣做的正確方法是什么? 似乎Eclipse有相當拜占庭的“提供者”和“工具鏈”配置,我不想進行設置,我以后無法撤消...

注意:我確實嘗試在某些預處理器包含等提供程序設置中用/usr/bin/g++-4.9替換${COMMAND} ,這確實導致發現4.9.3相關的包含文件,但我的索引器沒有不喜歡這樣,所有std ::的東西都顯示為紅色且未解決。 然后我試着尋找我設置用於索引的編譯器版本的位置,但我找不到。

有兩種可能的答案,取決於您是在做“標准制作”還是“制作制作”。 標准制作意味着您正在編寫自己的Makefile並自行管理所有這些。 Managed Make意味着您讓CDT創建Makefile並管理它們。

標准制作

對於標准品,一切都由掃描儀發現的東西控制。 掃描程序處理查找作為項目一部分的所有系統包含文件,並將這些文件提供給索引器以解析符號,並允許諸如頭文件導航之類的內容。

要更改使用的編譯器,您需要用您選擇的編譯器替換${COMMAND} 您(作為用戶)可以確保此命令與您在Makefile中使用的命令相匹配。

要更改${COMMAND}

  1. 打開項目屬性 (通過右鍵單擊項目)
  2. 在樹中選擇C / C ++ General - > Preprocessor Include Paths,Macros等
  3. 選擇提供商選項卡
  4. 從列表中選擇CDT GCC內置編譯器設置
  5. 替換${COMMAND}${COMMAND} 以獲取編譯器規范:到您想要的g ++可執行文件。

這是一個截圖,以幫助:

命令編輯

要查看此操作,以下是一些有和沒有描述更改的屏幕截圖。 在我的機器上,我有/usr/bin/g++是版本5.3,而/usr/bin/g++-4.7是版本4.7。

使用默認的g ++

克++ 5

將g ++重寫為版本4

克++ 4

使用環境管理

上面的問題是你需要在Makefile和構建設置之間協調g ++ 解決此問題的一種方法是使用C / C ++ Build Environment設置將CXX定義為要使用的編譯器。 在項目設置( 項目屬性 - > C / C ++構建 - > 環境 )或全局首選項( 首選項 - > C / C ++ - > 構建 - > 環境 )中設置CXX環境變量。

然后用${CXX}替換${COMMAND} ${CXX}

這是一個截圖,演示了我所描述的內容:

環境

管理制造

相反,如果您使用的是Managed Make,則需要覆蓋各個工具的構建設置。 然后,這些設置將提供給Standard Make直接使用的預處理器包含路徑,宏等設置。

要更改構建設置,您需要在幾個地方覆蓋用於編譯器的命令,每種類型的工具一次。 項目屬性 - > C / C ++構建 - > 設置開始 ,然后編輯以下每個:

  • GCC C ++編譯器 - >通常設置為g++
  • GCC C編譯器 - >通常設置為gcc
  • GCC C ++鏈接器 - >通常設置為g++

這是一個演示截圖:

mananged制作截圖

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM