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

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

在CMake中使用GLOB或每個(gè)文件單獨(dú)指定源文件是否更好?

在CMake中使用GLOB或每個(gè)文件單獨(dú)指定源文件是否更好?

在CMake中使用GLOB或每個(gè)文件單獨(dú)指定源文件是否更好?CMake提供了幾種指定目標(biāo)源文件的方法。一種是使用globbing(文檔),例如:FILE (GLOB dir/*)另一個(gè)是單獨(dú)指定每個(gè)文件。哪種方式更喜歡?Globbing似乎很容易,但我聽說它有一些缺點(diǎn)。
查看完整描述

3 回答

?
慕慕森

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

完全披露:我最初傾向于簡(jiǎn)化泛化方法,但多年來我逐漸認(rèn)識(shí)到明確列出文件對(duì)于大型多開發(fā)人員項(xiàng)目來說不易出錯(cuò)。

原始答案:


通配的優(yōu)點(diǎn)是:

  • 添加新文件很容易,因?yàn)樗鼈冎涣性谝粋€(gè)地方:磁盤上。不是globbing會(huì)創(chuàng)建重復(fù)。

  • 您的CMakeLists.txt文件將更短。如果你有很多文件,這是一個(gè)很大的優(yōu)勢(shì)。不是globbing會(huì)導(dǎo)致您丟失巨大的文件列表中的CMake邏輯。

使用硬編碼文件列表的優(yōu)點(diǎn)是:

  • CMake將正確跟蹤磁盤上新文件的依賴關(guān)系 - 如果我們使用glob,那么當(dāng)你運(yùn)行時(shí),第一次沒有全局文件的文件將無法獲取

  • 您確保只添加所需的文件。Globbing可能會(huì)拾取您不想要的雜散文件。

為了解決第一個(gè)問題,您可以通過使用touch命令或通過編寫沒有更改的文件來“觸摸”執(zhí)行g(shù)lob的CMakeLists.txt。這將迫使cmake重新運(yùn)行并獲取新文件。

要解決第二個(gè)問題,您可以將代碼小心地組織到目錄中,這也是您可能要做的事情。在最壞的情況下,您可以使用list(REMOVE_ITEM)命令來清理全局文件列表:

file(GLOB to_remove file_to_remove.cpp)list(REMOVE_ITEM list ${to_remove})

唯一可以咬你的真實(shí)情況是,如果你使用像git-bisect這樣的東西來在同一個(gè)構(gòu)建目錄中嘗試舊版本的代碼。在這種情況下,您可能需要清理和編譯超過必要的內(nèi)容,以確保您在列表中獲得正確的文件。這是一個(gè)極端的案例,而且你已經(jīng)在你的腳趾上,這不是一個(gè)真正的問題。


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

添加回答

舉報(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)