簡體   English   中英

VS2013:在同一解決方案中與項目鏈接時出現LNK1104錯誤

[英]VS2013: LNK1104 error when linking with project in same solution

這可能是關於SO的更愚蠢的問題之一,但我無法解決。

我有一個包含三個項目A,B和C的解決方案。A和B是靜態lib項目,而C是一個與A和B鏈接的exe項目。我已經建立了構建目錄,以便用於每個項目的位置如下:

A: $(SolutionDir)\$(PlatformName)\$(Configuration)\Lib\A.lib
B: $(SolutionDir)\$(PlatformName)\$(Configuration)\Lib\B.lib
C: $(SolutionDir)\$(PlatformName)\$(Configuration)\Bin\C.exe

由於內置在項目C中的exe期望A和B中的庫,因此我將庫A.lib和B.lib添加到項目C Properties-> Linker-> General-> Additional Dependencies中 我已經將A和B的目錄位置添加到項目屬性->鏈接器->常規->其他庫目錄中,完全與上面列出的相同。

鏈接時,出現鏈接器錯誤LNK1104:無法打開文件A.lib

有人可以幫忙嗎? 我對使用VS有一定的經驗,但這是我第一次從頭開始構建多項目解決方案。

非常感謝。

當您說您添加的目錄完全與列出的目錄相同時,是否也意味着文件名? 因為僅目錄部分應該存在,即$(SolutionDir)\\$(PlatformName)\\$(Configuration)\\Lib

除此之外,您需要確保以正確的順序構建項目。 MSBuild將很樂意嘗試在AB之前(或與之並行)編譯C 為此,請使用“ References屬性頁(在Project->Properties->Common Properties ),或使用“ Project Dependencies對話框( Project->Project Dependencies... )手動強制它。

我應該提到,使用項目引用機制是管理依賴項的“新方法”,也是推薦的方式-應該自動將引用項目的輸出添加為引用項目的輸入依賴項,而無需手動指定它們。 我自己過去並不能總是很幸運地能使這部分工作,但是它至少確實可以正確配置依賴項鏈。

為了完整起見,請注意,只有在已編譯項目中實際包含任何符號時,才會生成.lib文件(因此,如果您的項目為空或沒有定義任何符號,則編譯該文件將不會生成.lib文件,從而破壞了構建所有相關項目)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM