CMake指定編譯器目錄詳解-創(chuàng)新互聯(lián)

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

專注于為中小企業(yè)提供網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)桐廬免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了1000+企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
CXX ="/opt/gcc-4.8/bin/g++" cmake ..

報(bào)錯(cuò)原因:
使CMake使用此特定的編譯器。 否則,它將使用操作系統(tǒng)的默認(rèn)編譯器。
提問:
我的PATH在所有其他內(nèi)容的前面都有/opt/gcc-4.8/bin。 因此,除了在環(huán)境變量前添加前綴,還可以在CMakeLists.txt文件中指定在路徑上使用默認(rèn)g++的方法嗎?
解答:
(1)手動(dòng)指定編譯目錄:

-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:$PATH

CMake支持PATH環(huán)境變量的設(shè)置,但優(yōu)先使用通用編譯器名稱cc和c++。 要確定CMake在UNIX下默認(rèn)使用哪個(gè)C編譯器,請(qǐng)運(yùn)行:
which cc
要確定默認(rèn)的C ++編譯器,請(qǐng)運(yùn)行:
which c++
如果在/opt/gcc-4.8/bin中生成指向/opt/gcc-4.8/bin/g++的符號(hào)鏈接c++,則CMake默認(rèn)情況下應(yīng)使用GCC 4.8。
問題2:
cc而不是c++的位置確定將使用哪個(gè)c++進(jìn)行cmake。
例:
如果您有/usr/local/bin/c++但cc編譯環(huán)境目錄為/usr/bin/cc,cmake仍會(huì)拾取/usr/bin/c++,而不是/usr/local/bin/c++。
解答:
(1)在這種情況下,在/usr/bin/cc處創(chuàng)建指向/usr/local/bin/gcc的符號(hào)鏈接將使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)建腳本時(shí),我在構(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

我在另一個(gè)thread中看到這不是一個(gè)錯(cuò)誤,我的代碼繼續(xù)編譯,直到出現(xiàn)不同的錯(cuò)誤,但是為什么輸出會(huì)被“跳過”而不是“工作”?
解答:
這在較新的CMake版本中是正常的,因?yàn)闀?huì)跳過測(cè)試,因?yàn)橐阎幾g器可以工作,因?yàn)樗軌虼_定ABI。
請(qǐng)參閱https://gitlab.kitware.com/cmake/cmake/-/merge_requests/4789

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購,新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧

文章名稱:CMake指定編譯器目錄詳解-創(chuàng)新互聯(lián)
分享網(wǎng)址:http://www.muchs.cn/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)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)