如何使CMake在系統(tǒng)PATH上使用默認(rèn)編譯器?
問題1:
當(dāng)前,我從構(gòu)建目錄中調(diào)用CMake,如下所示::

CXX ="/opt/gcc-4.8/bin/g++" cmake ..報(bào)錯原因:
使CMake使用此特定的編譯器。 否則,它將使用操作系統(tǒng)的默認(rèn)編譯器。
提問:
我的PATH在所有其他內(nèi)容的前面都有/opt/gcc-4.8/bin。 因此,除了在環(huán)境變量前添加前綴,還可以在CMakeLists.txt文件中指定在路徑上使用默認(rèn)g++的方法嗎?
解答:
(1)手動指定編譯目錄:
-D CMAKE_C_COMPILER=/home/gcc7/gcc-7.3.0-install/bin/gcc
-D CMAKE_CXX_COMPILER=/home/gcc7/gcc-7.3.0-install/bin/g++(2)cmakelist文件中指定編譯目錄
(3)path環(huán)境變量指定
// 此方法將環(huán)境變量配置在了PATH的最前面
export PATH=/home/gcc7/gcc-7.3.0-install/bin:$PATHCMake支持PATH環(huán)境變量的設(shè)置,但優(yōu)先使用通用編譯器名稱cc和c++。 要確定CMake在UNIX下默認(rèn)使用哪個C編譯器,請運(yùn)行:which cc
要確定默認(rèn)的C ++編譯器,請運(yùn)行:which c++
如果在/opt/gcc-4.8/bin中生成指向/opt/gcc-4.8/bin/g++的符號鏈接c++,則CMake默認(rèn)情況下應(yīng)使用GCC 4.8。
問題2:cc而不是c++的位置確定將使用哪個c++進(jìn)行cmake。
例:
如果您有/usr/local/bin/c++但cc編譯環(huán)境目錄為/usr/bin/cc,cmake仍會拾取/usr/bin/c++,而不是/usr/local/bin/c++。
解答:
(1)在這種情況下,在/usr/bin/cc處創(chuàng)建指向/usr/local/bin/gcc的符號鏈接將使cmake使用/usr/local/bin/c++。
(2)
另一種方法是將項(xiàng)目的語言顯式設(shè)置為C ++:
project(foo CXX)(3)
project(foo CXX C)將優(yōu)先使用C++編譯器來編譯
問題3:
當(dāng)運(yùn)行使用cmake的構(gòu)建腳本時,我在構(gòu)建過程中得到了以下輸出:
[vcvarsall.bat] Environment initialized for: 'x64'
-- The C compiler identification is MSVC 19.27.29112.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Professional/VC/Tools/MSVC/14.27.29110/bin/Hostx64/x64/cl.exe - skipped我在另一個thread中看到這不是一個錯誤,我的代碼繼續(xù)編譯,直到出現(xiàn)不同的錯誤,但是為什么輸出會被“跳過”而不是“工作”?
解答:
這在較新的CMake版本中是正常的,因?yàn)闀^測試,因?yàn)橐阎幾g器可以工作,因?yàn)樗軌虼_定ABI。
請參閱https://gitlab.kitware.com/cmake/cmake/-/merge_requests/4789
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧
文章名稱:CMake指定編譯器目錄詳解-創(chuàng)新互聯(lián)
分享網(wǎng)址:http://chinadenli.net/article48/shdhp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作、服務(wù)器托管、App開發(fā)、關(guān)鍵詞優(yōu)化、定制網(wǎng)站、全網(wǎng)營銷推廣
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容