解決VS在編譯的時候無法開啟 obj檔案的問題

2021-06-27 19:16:28 字數 776 閱讀 7930

前段時間在鏈結自己編寫好的動態庫的時候,按照原先的方法,卻遭遇失敗的問題,提示少了什麼什麼.obj檔案。在網上找了很多方法,試了很多,但是卻都失敗,感覺很不靠譜。最後在破釜沉舟的情況下,終於解決了,下面分享我解決的方法,希望可以幫到後來人。

要看一下link命令列就知道了.

專案->屬性->鏈結器->輸入->附加依賴項.

在這裡你會發現你前面設定的"附加依賴項"被ide改寫了.

例如你要加入乙個abc.lib的鏈結庫,完整路徑為"c:\program files\abc.lib",

如果被ide改寫的話會變成"c:\program" 

"files\abc.lib"

相應的命令列變成link (...) "c:\program"

"files\abc.lib"

那麼鏈結器會要求提供"c:\program.obj"檔案,由於該檔案不存在,所以會返回上面的除錯資訊'link : fatal error lnk1104: 無法開啟檔案「c:\program.obj」'!

解決的方法,其實也很簡單。就是講整個路徑加上「」。

例如:比如你這樣設定c:\program files\***\lib\***.lib,表示你在專案中連線到這個***.lib,但是,在program與file之間有乙個空格,所以就解析成了c:\program, 再所以,就出現了:c:\program.obj無法開啟,所以你設定的時候寫成這樣"c:\program files\***\lib\***.lib", 用"" 引號,將整個路徑括起來就行了。這樣編譯器就不會存在二義性來解釋你原先想設定的命令。

C Ado 在編譯的時候,報錯。

其中錯誤提示如下 fatal error c1083 cannot open type library file c program files common files system ado msjro.dll no such file or directory 1 首先確定在標頭檔案ado2.h...

陣列和指標在編譯的時候的區別

c語言中指標和陣列在編譯時的區別 例如 int a 10 和int b,a 5 和 b 5 在編譯的時候區別是什麼?經過反覆的查資料和請教他人,最後在 c專家程式設計 裡找到了很好的答案。1。編譯器對陣列名和指標變數的處理方式 編譯器在編譯時會產生乙個符號表,記錄了符號名和它的位址。對於指標變數,這...

vs無法開啟專案的解決方案

未找到與約束 contractname microsoft.internal.visualstudio.platformui.isolutionattachedcollectionservice requiredtypeidentity microsoft.internal.visualstudio...