第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何在CMake文件中添加鏈接器或編譯標(biāo)志?

如何在CMake文件中添加鏈接器或編譯標(biāo)志?

如何在CMake文件中添加鏈接器或編譯標(biāo)志?我正在使用arm-linux-androideabi-g++編譯器。當(dāng)我嘗試編譯一個(gè)簡(jiǎn)單的“你好,世界!” 程序編譯好。當(dāng)我通過(guò)在該代碼中添加一個(gè)簡(jiǎn)單的異常處理來(lái)測(cè)試它時(shí)它也可以工作(添加之后-fexceptions..我猜它默認(rèn)是禁用的)。這適用于Android設(shè)備,我只想使用CMake,而不是ndk-build。例如 - first.cpp#include <iostream>using namespace std;int main(){    try{    }    catch(...)    {    }    return 0;}./arm-linux-androideadi-g++ -o first-test first.cpp -fexceptions它沒(méi)有問(wèn)題......問(wèn)題 ...我試圖用CMake文件編譯文件。我想添加-fexceptions標(biāo)志。我試過(guò)了set (CMAKE_EXE_LINKER_FLAGS -fexceptions ) or set (CMAKE_EXE_LINKER_FLAGS "fexceptions" )和set ( CMAKE_C_FLAGS "fexceptions")它仍然顯示錯(cuò)誤。
查看完整描述

3 回答

?
尚方寶劍之說(shuō)

TA貢獻(xiàn)1788條經(jīng)驗(yàn) 獲得超4個(gè)贊

假設(shè)您要添加這些標(biāo)志(最好將它們聲明為常量):

SET(GCC_COVERAGE_COMPILE_FLAGS "-fprofile-arcs -ftest-coverage")SET(GCC_COVERAGE_LINK_FLAGS    "-lgcov")

有幾種方法可以添加它們:

  1. 最簡(jiǎn)單的(不干凈,但簡(jiǎn)單方便,只適用于編譯標(biāo)志,C&C ++一次):

    add_definitions(${GCC_COVERAGE_COMPILE_FLAGS})
  2. 附加到相應(yīng)的CMake變量:

    SET(CMAKE_CXX_FLAGS  "${CMAKE_CXX_FLAGS} ${GCC_COVERAGE_COMPILE_FLAGS}")SET(CMAKE_EXE_LINKER_FLAGS  "${CMAKE_EXE_LINKER_FLAGS} ${GCC_COVERAGE_LINK_FLAGS}")
  3. 使用目標(biāo)屬性,參見 doc CMake編譯標(biāo)志目標(biāo)屬性,需要知道目標(biāo)名稱。

    get_target_property(TEMP ${THE_TARGET} COMPILE_FLAGS)if(TEMP STREQUAL "TEMP-NOTFOUND")
      SET(TEMP "") # Set to empty stringelse()
      SET(TEMP "${TEMP} ") # A space to cleanly separate from existing contentendif()# Append our valuesSET(TEMP "${TEMP}${GCC_COVERAGE_COMPILE_FLAGS}" )set_target_properties(${THE_TARGET} PROPERTIES COMPILE_FLAGS ${TEMP} )

現(xiàn)在我使用方法2。


查看完整回答
反對(duì) 回復(fù) 2019-08-15
?
三國(guó)紛爭(zhēng)

TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超7個(gè)贊

在較新版本的CMake中,您可以分別使用target_compile_options和設(shè)置單個(gè)目標(biāo)的編譯器和鏈接器標(biāo)志target_link_libraries(是的,后者也設(shè)置鏈接器選項(xiàng)):

target_compile_options(first-test PRIVATE -fexceptions)

這種方法的優(yōu)點(diǎn)是你可以控制選項(xiàng)傳播到依賴于這個(gè)PUBLIC和/的其他目標(biāo)PRIVATE。

從CMake 3.13開始,您還可以使用target_link_options添加鏈接器選項(xiàng),使意圖更清晰。


查看完整回答
反對(duì) 回復(fù) 2019-08-15
?
婷婷同學(xué)_

TA貢獻(xiàn)1844條經(jīng)驗(yàn) 獲得超8個(gè)贊

嘗試設(shè)置變量CMAKE_CXX_FLAGS而不是CMAKE_C_FLAGS

set (CMAKE_CXX_FLAGS "-fexceptions")

該變量CMAKE_C_FLAGS僅影響C編譯器,但您正在編譯C ++代碼。

添加標(biāo)志CMAKE_EXE_LINKER_FLAGS是多余的。


查看完整回答
反對(duì) 回復(fù) 2019-08-15
  • 3 回答
  • 0 關(guān)注
  • 3240 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)