1. 程式人生 > >解決VS在編譯的時候無法開啟...obj檔案的問題

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

前段時間在連結自己編寫好的動態庫的時候,按照原先的方法,卻遭遇失敗的問題,提示少了什麼什麼.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\XXX\lib\XXX.lib,表示你在專案中連線到這個XXX.lib,但是,在Program與File之間有一個空格,所以就解析成了C:\Program, 再所以,就出現了:C:\Program.obj無法開啟,所以你設定的時候寫成這樣"C:\Program Files\XXX\lib\XXX.lib", 用"" 引號,將整個路徑括起來就行了。這樣編譯器就不會存在二義性來解釋你原先想設定的命令。