我在Visual Studio 2008中創建了一個新的C++項目。只有項目設置已更改。爲什麼在Visual Studio中編譯C++項目時發生致命錯誤「LNK1104:無法打開文件'C: Program.obj'」?
當我編譯項目,我收到以下致命錯誤:
fatal error LNK1104: cannot open file 'C:\Program.obj'
我在Visual Studio 2008中創建了一個新的C++項目。只有項目設置已更改。爲什麼在Visual Studio中編譯C++項目時發生致命錯誤「LNK1104:無法打開文件'C: Program.obj'」?
當我編譯項目,我收到以下致命錯誤:
fatal error LNK1104: cannot open file 'C:\Program.obj'
這個特殊的問題是通過指定的依賴於在其路徑有空格的LIB文件引起的。該路徑需要用項目的引號包圍以正確編譯。
在配置屬性 - >鏈接器 - >項目的屬性的輸入選項卡中,有一個附加依賴財產。這個問題是固定由更改此屬性:
C:\Program Files\sofware sdk\lib\library.lib
要:
" C:\Program Files\sofware sdk\lib\library.lib"
我在哪裏加引號。
我有同樣的問題。它由一個「,」在一個額外的庫路徑的文件夾的名稱造成的。它通過更改額外的庫路徑解決。
如果文件仍在運行,則會發生這種情況。
:-1: error: LNK1104: cannot open file 'debug\****.exe'
在我的情況下,這是一個錯誤指導的參考。項目引用了另一個項目的輸出,但後者沒有輸出前者正在尋找的文件。
對於總成項目(項目名 - >編譯依賴 - >構建自定義 - > MASM(選擇)),設置生成預處理後的上市到真對我造成的問題太多,清除設置固定它。 VS2013在這裏。
我遇到了連接器抱怨主要可執行文件丟失的相同問題。這發生在我們的解決方案端口到新的Visual Studio 2013。該解決方案是多種管理和未管理的項目/代碼組合。問題(和修復)最終成爲解決方案文件夾中缺少的app.config文件。花了一天的時間來找出這一個:(因爲輸出日誌不是很有幫助。
我檢查了我所有的設置根據此列表:http://msdn.microsoft.com/en-us/library/ts7eyw4s.aspx#feedback。這對我和我的情況有幫助,我發現鏈接項目屬性的依賴項有雙引號,這不應該存在。
關閉並重新打開Visual Studio後,問題就消失了。不知道爲什麼問題發生了,但這可能值得一試。
這是在VS 2013 Ultimate,Windows 8.1上。
我回答是因爲我沒有看到這個其他人列出的特定解決方案。
顯然我的殺毒軟件(Ad-Aware)正在標記一個我的項目中的一個項目依賴並刪除它。即使在排除DLL所在的目錄之後,仍會繼續相同的行爲,直到重新啓動計算機。
我的問題是缺少.lib
擴展名,我只是鏈接到mylib
和VS決定尋找mylib.obj
。
檢查您是否還沒有打開此項:配置屬性 - > C/C++ - >預處理器 - >預處理爲文件。
我有同樣的錯誤,只是與我已經安裝了一個Nuget包(一個不是頭只),然後嘗試卸載。
我的錯在於我還包括一個頭文件,我剛剛卸載了一個.cpp文件(非常愚蠢,是的)。
我甚至在Project -> Properties -> Linker -> General
中刪除了額外的庫目錄鏈接,但當然沒有用,因爲我仍然試圖引用不存在的頭文件。
在這種情況下肯定是一個令人困惑的錯誤消息,因爲標題名稱是<boost/filesystem.hpp>
但錯誤給了我"cannot open file 'llibboost_filesystem-vc140-mt-gd-1_59.lib'"
並且沒有行號或任何內容。
我有同樣的問題,但我的案例解決方案沒有列出答案。 我的防病毒程序(AVG)確定文件MyProg.exe
爲病毒,並將其放入「病毒庫」中。你需要檢查這個庫,如果有文件 - 那麼就恢復它。它幫助我。
解決方案1(對於我的情況):重新啓動Windows資源管理器進程(是的,Windows文件管理器)。
解決方案2:
我認爲有時文件系統或控制它的人會因其權限而丟失。在重新啓動Windows會話之前,試圖殺死殭屍msbuild32.exe
進程,重新啓動visual studio,甚至沒有顯示任何問題文件。沒有構建配置問題。它偶爾會發生。 Windows中的某些內部事物沒有修復,需要重新啓動。
在我的情況下,我用GLM替換了之前Game Engine Graphics課程的數學庫文件。問題在於我沒有將它們添加到Visual Studio的解決方案資源管理器中的項目中(即使它們在項目存儲庫中)。
我把這個問題與LNK2038錯誤結合在一起,跟着這個post來隔離RELEASE和DEBUG DLLs。在這個過程中,我清理了這些依賴關係所在的整個文件夾。
幸運的是,我有所有這些文件的備份,並得到了這個錯誤被扔回到DEBUG文件夾來解決問題的文件。錯誤代碼在某種程度上具有誤導性,因爲我不得不花費大量時間從這篇文章的答案中再次看到這篇技巧。
希望這個答案,幫助有需要的人。
我解決它通過加入的現有項目到我解決方案,我忘了在第一時間補充。
我遇到了同樣的問題,我剛剛將代碼複製到新項目並開始構建。 其他一些錯誤開始了。 錯誤C4996:'fopen':此函數或變量可能不安全。考慮使用fopen_s代替
爲了再次解決這個問題,我在Project項目中添加了我的一個屬性,如下所示。 項目 - >屬性 - >配置屬性 - > c/C++。 在這個類別中有字段名預處理定義 我已經加入_CRT_SECURE_NO_WARNINGS這對解決問題 希望這將有助於...
謝謝
我有同樣的錯誤:
這是由最後的;
造成的。如果你有多個庫,它們應該用空格(空格)分隔,不要用逗號或分號。
所以不要在項目屬性上市庫時使用;
否則任何事情>>配置屬性>>鏈接>>輸入
上帝你剛剛掛2天的錯誤追逐30第二個: ) – 2009-05-10 21:04:44
對不起,它爲我工作..! – pvaju896 2010-08-25 06:27:51
沒有工作:( – 2012-12-26 21:44:12