cmake 鏈接靜態(tài)庫(kù) 如何使用cmake生成基于靜態(tài)庫(kù)的動(dòng)態(tài)鏈接庫(kù)?
如何使用cmake生成基于靜態(tài)庫(kù)的動(dòng)態(tài)鏈接庫(kù)?模式,此模式的庫(kù)不會(huì)作為靜態(tài)庫(kù)存檔,而是一個(gè)“偽”庫(kù),產(chǎn)品是一堆對(duì)象文件。在大多數(shù)情況下,您可以使用靜態(tài)庫(kù)目標(biāo)執(zhí)行相同的操作,因?yàn)殪o態(tài)庫(kù)實(shí)際上是對(duì)象文件打
如何使用cmake生成基于靜態(tài)庫(kù)的動(dòng)態(tài)鏈接庫(kù)?
模式,此模式的庫(kù)不會(huì)作為靜態(tài)庫(kù)存檔,而是一個(gè)“偽”庫(kù),產(chǎn)品是一堆對(duì)象文件。
在大多數(shù)情況下,您可以使用靜態(tài)庫(kù)目標(biāo)執(zhí)行相同的操作,因?yàn)殪o態(tài)庫(kù)實(shí)際上是對(duì)象文件打包,并且不執(zhí)行任何特殊操作。我能想到我必須這么做的唯一原因是你想把項(xiàng)目分成幾個(gè)部分,而這些部分之間的象征性依賴(lài)就是一鍋粥。在打包到靜態(tài)庫(kù)之后,您無(wú)法決定鏈接的順序。
根據(jù)您的要求,您不需要此功能。直接添加一個(gè)靜態(tài)庫(kù)就足夠了:
說(shuō)明文檔。
cmake中target_link_libraries無(wú)法使用相對(duì)路徑是怎么回事?
使用相對(duì)路徑時(shí),您應(yīng)該讓cmake搜索并找到您的動(dòng)態(tài)庫(kù),就像使用gcc/g直接鏈接時(shí)一樣,您應(yīng)該使用-L指定第三方庫(kù)的路徑。Cmake可以使用link例如,如果您的動(dòng)態(tài)庫(kù)位于/home/myproject/LIBS的路徑中,使用命令link Directors(/home/myproject/LIBS)將路徑添加到第三方庫(kù)的搜索路徑中,這樣您就可以使用相對(duì)路徑和目標(biāo)link當(dāng)庫(kù)時(shí),您只需要給出DLL的名稱(chēng),例如目標(biāo)鏈接庫(kù)(MyApp-lcurl)