visual c++ - linker設定 - 為什麼在Visual Studio中編譯C++項目時發生致命錯誤“LNK1104:無法打開文件'C:\ Program.obj'”?




visual studio 2017 linker settings (13)

我在Visual Studio 2008中創建了一個新的C ++項目。沒有編寫代碼; 只有項目設置已更改。

當我編譯該項目時,我收到以下致命錯誤:

致命錯誤LNK1104:無法打開文件'C:\ Program.obj'


在我的情況下,我用GLM替換了之前的Game Engine Graphics課程的數學庫文件。 問題在於我沒有將它們添加到Visual Studio的解決方案資源管理器中的項目中(即使它們在項目存儲庫中)。


如果文件仍在運行,就會發生這種情況。

:-1:錯誤:LNK1104:無法打開文件'debug \ ****。exe'


就我而言,這是一個錯誤指導的參考。 項目引用了另一個項目的輸出,但後者沒有輸出前者正在尋找的文件。


我在回答,因為我沒有看到其他人列出的這個特定的解決方案。

顯然,我的殺毒軟件(Ad-Aware)正在標記我的項目中的一個項目依賴並刪除它。 即使在排除DLL所在的目錄之後,仍會繼續相同的行為,直到重新啟動計算機。


我有同樣的問題,但我的案例解決方案沒有列在答案中。 我的防病毒程序(AVG)將文件MyProg.exe確定為病毒,並將其放入“病毒庫”中。 你需要檢查這個庫,如果有文件 - 那麼就恢復它。 它幫助我。


我有同樣的錯誤,只是我已經安裝了一個Nuget包(一個不是頭文件),然後嘗試卸載。
我的錯在於我還包括一個頭文件,我只是在我的一個.cpp文件中卸載了這個包(非常愚蠢,是的)。
我甚至在Project -> Properties -> Linker -> General刪除了額外的庫目錄鏈接,但當然沒有用,因為我仍然試圖引用不存在的頭文件。

在這種情況下肯定是一個令人困惑的錯誤信息,因為標題名稱是<boost/filesystem.hpp>但錯誤給了我"cannot open file 'llibboost_filesystem-vc140-mt-gd-1_59.lib'"並且沒有行號或任何內容。


我有這個問題與LNK2038錯誤一起,在此後分離RELEASE和DEBUG DLL。 在這個過程中,我清理了這些依賴關係所在的整個文件夾。

幸運的是,我對所有這些文件進行了備份,並獲得了該錯誤被扔回DEBUG文件夾以解決問題的文件。 錯誤代碼在某種程度上具有誤導性,因為我不得不花費大量時間從這篇文章的答案中再次看到這篇技巧。

希望得到這個答案,幫助有需要的人。



我遇到了同樣的問題,我剛剛將代碼複製到新項目並開始構建。 其他一些錯誤開始了。 錯誤C4996:'fopen':此函數或變量可能不安全。 考慮使用fopen_s代替

為了再次解決這個問題,我已經在Project項目中添加了我的一個屬性,如下所示。 項目 - >屬性 - >配置屬性 - > c / c ++。 在這個類別中有字段名稱預處理器定義我已經添加_CRT_SECURE_NO_WARNINGS這個來解決問題希望它能幫助...

謝謝


我遇到了連接器抱怨主要可執行文件丟失的問題。 這發生在我們的解決方案端口到新的Visual Studio 2013中 。 該解決方案是多種管理和未管理的項目/代碼組合。 問題(和修復)最終成為解決方案文件夾中缺少的app.config文件。 花了一天的時間來找出這一個:(因為輸出日誌不是很有幫助。


這個特定的問題是由指定一個依賴於一個在其路徑中有空格的lib文件引起的。 該路徑需要用項目的引號包圍以正確編譯。

在項目屬性配置屬性 - >鏈接器 - >輸入選項卡上,有一個附加依賴項屬性。 此問題已通過將此屬性更改為:

C:\ Program Files \ sofware sdk \ lib \ library.lib

至:

“C:\ Program Files \ sofware sdk \ lib \ library.lib”

我在哪裡添加了引號。


還要檢查是否沒有打開: 配置屬性 - > C / C ++ - >預處理器 - >預處理到文件


我的問題是缺少.lib擴展名,我只是連接到mylib而VS決定尋找mylib.obj





linker