Visual Studio 2008で新しいC++プロジェクトを作成しました。コードはまだ作成されていません。プロジェクト設定のみが変更されています。
プロジェクトをコンパイルすると、次の致命的なエラーが発生します。
致命的なエラーLNK1104:ファイル 'C:\ Program.obj'を開けません
この特定の問題は、パスにスペースが含まれるlibファイルへの依存関係を指定することにより発生します。プロジェクトを正しくコンパイルするには、パスを引用符で囲む必要があります。
プロジェクトのプロパティの構成プロパティ->リンカー->入力タブには、追加の依存関係プロパティがあります。この問題は、このプロパティを以下から変更することで修正されました。
C:\ Program Files\sofware sdk\lib\library.lib
に:
「C:\ Program Files\sofware sdk\lib\library.lib」
引用符を追加した場所。
これは、ファイルがまだ実行されている場合に発生する可能性があります。
:-1:エラー:LNK1104:ファイル 'debug\****。exe'を開けません
Visual Studioを閉じて再度開いた後、問題は解決しました。問題が発生した理由はわかりませんが、一見の価値があるかもしれません。
これは、VS 2013 Ultimate、Windows 8.1で行われました。
これがオンになっていないことも確認してください。構成プロパティ-> C/C++->プリプロセッサ->ファイルへの前処理。
私の問題は、.lib
拡張子の欠落でした。mylib
に対してリンクしているだけで、VSはmylib.obj
を探すことにしました。
同じ問題がありました。追加のライブラリパスのフォルダー名に「、」が含まれていたためです。追加のライブラリパスを変更することで解決しました。
私の場合、それは誤った指示の問題でした。プロジェクトは別のプロジェクトの出力を参照しましたが、後者は前者が探していたファイルを出力しませんでした。
このリストに従って、すべての設定を確認しました: http://msdn.Microsoft.com/en-us/library/ts7eyw4s.aspx#feedback 私にとっては助かります。私の状況では、プロジェクトのプロパティのリンク依存関係に二重引用符が付いていることがわかりますが、二重引用符は存在しないはずです。
同じエラーが発生しました。インストールしたNugetパッケージ(ヘッダーのみではないパッケージ)をアンインストールしようとしました。
私にとって間違っていたのは、.cppファイルの1つにアンインストールしたばかりのパッケージのヘッダーがまだ含まれていることです(かなりばかげた、はい)。Project -> Properties -> Linker -> General
にある追加のライブラリディレクトリリンクも削除しましたが、もちろん存在しないヘッダーを参照しようとしていたため、役に立ちませんでした。
この場合、紛らわしいエラーメッセージです。ヘッダー名は<boost/filesystem.hpp>
でしたが、エラーにより"cannot open file 'llibboost_filesystem-vc140-mt-Gd-1_59.lib'"
が表示され、行番号などは表示されませんでした。
解決策1(私の場合):Windowsエクスプローラープロセスを再起動します(はい、Windowsファイルマネージャー)。
解決策2:
私は時々、ファイルシステムまたはそれを制御している人がその許可で失われると思います。 Windowsセッションを再起動する前に、ゾンビのmsbuild32.exe
プロセスを強制終了し、Visual Studioを再起動し、問題のファイルが表示されていないことを確認しました。ビルド構成の問題はありません。それは時々起こります。 Windowsのいくつかの内部的な問題は解決せず、再起動が必要です。
私は同じ問題を抱えていましたが、私のケースの解決策は回答にリストされていません。私のウイルス対策プログラム(AVG)は、ファイルMyProg.exe
をウイルスと判断し、「ウイルス保管庫」に入れました。この倉庫を確認し、ファイルが存在する場合は、復元する必要があります。助けてくれました。
アセンブリプロジェクトの場合(ProjectName-> Build Dependencies-> Build Customizations-> masm(選択))、Generate Preprocessed Source Listing to Trueも問題を引き起こし、設定をクリアすると修正されました。 VS2013はこちら。
メインの実行可能ファイルが見つからないと文句を言うリンカで同じ問題が発生します。これは、新しいVisual Studio 201へのソリューションの移植中に発生しました。このソリューションは、マネージドプロジェクトとアンマネージドプロジェクト/コードのさまざまな組み合わせです。問題(および修正)は、ソリューションフォルダーに欠落しているapp.configファイルになりました。出力ログはあまり役に立たなかったので、これを理解するのに1日かかりました:(.
LNK2038エラーと関連してこの問題が発生したため、この post に従ってRELEASE DLLとDEBUG DLLを分離しました。このプロセスでは、これらの依存関係が存在するフォルダー全体をクリーンアップしました。
幸いなことに、これらすべてのファイルのバックアップがあり、このエラーがDEBUGフォルダーにスローされていたファイルを取得して、問題を解決しました。エラーコードは何らかの形で誤解を招くものでした。この投稿の回答の1つからこのヒントを得るまでに多くの時間を費やさなければならなかったからです。
この答えを願って、困っている人を助けます。
私は同じエラーが発生しました:
fatal error LNK1104: cannot open file 'GTest.lib;'
これは、最後の;
が原因でした。複数のライブラリがある場合は、空のスペース(スペースバー)で区切ってください。コンマやセミコロンは使用しないでください!
そのため、ライブラリをリストするときに;
などを使用しないでください Project properties >> Configuration Properties >> Linker >> Input
私の場合、以前のGame Engine Graphicsコースの数学ライブラリファイルをGLMに置き換えました。問題は、(それらがプロジェクトリポジトリにあったとしても)Visual Studioのソリューションエクスプローラー内のプロジェクトにそれらを追加しなかったことです。
「Visual Studio 2013」でも同じ問題が発生しました。
LNK1104: cannot open file 'debug\****.exe
Visual Studioを閉じて再起動すると解決しました。
私が答えているのは、この特定のソリューションが他の誰によってもリストされていないからです。
どうやら私のアンチウイルス(Ad-Aware)はDLLにフラグを立てており、私のプロジェクトの1つが依存しており、それを削除していました。 DLLが存在するディレクトリを除外した後でも、コンピューターを再起動するまで同じ動作が続きました。
addingandexisting projecttomysolution、which I追加を忘れた初めて。