Visual Studio 2008 で新しい C++ プロジェクトを作成しました。まだコードは書かれていません。プロジェクトの設定のみが変更されました。
プロジェクトをコンパイルすると、次の致命的なエラーが発生します。
致命的なエラー LNK1104: ファイル 'C:\Program.obj' を開けません
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」
引用符を追加した場所。
私の問題は拡張機能の欠落でした.lib
。私はリンクしているだけでmylib
、VSはmylib.obj
.
追加ライブラリパスのフォルダ名に「,」が含まれていることが原因で、同じ問題が発生しました。追加ライブラリパスを変更することで解決しました。
解決策 1 (私の場合): Windows エクスプローラー プロセスを再起動します (はい、Windows ファイル マネージャー)。
解決策 2:
ファイルシステムまたはそれを制御している人が、そのアクセス許可で失われることがあると思います。Windowsセッションを再起動する前に、ゾンビmsbuild32.exe
プロセスを強制終了し、ビジュアルスタジオを再起動し、問題のあるファイルを表示しても何もチェックしませんでした。ビルド構成の問題はありません。それは時々起こります。Windows の内部の一部が修正されず、再起動が必要です。
インストールしたNugetパッケージ(ヘッダーのみではないもの)を使用して同じエラーが発生し、アンインストールしようとしました。
私にとって間違っていたのは、アンインストールしたばかりのパッケージのヘッダーを.cppファイルの1つにまだ含めていたことです(かなりばかげています、はい)。
で追加のライブラリ ディレクトリへのリンクを削除しましたProject -> Properties -> Linker -> General
が、存在しないヘッダーを参照しようとしていたため、もちろん役に立ちませんでした。
この場合、間違いなく紛らわしいエラー メッセージです。ヘッダー名<boost/filesystem.hpp>
は"cannot open file 'llibboost_filesystem-vc140-mt-gd-1_59.lib'"
.
アセンブリ プロジェクト (ProjectName -> Build Dependencies -> Build Customizations -> Masm (選択)) の場合、Generate Preprocessed Source ListingをTrueに設定すると問題が発生し、設定をクリアすると修正されました。VS2013はこちら。
メインの実行可能ファイルが見つからないというリンカーと同じ問題に遭遇しました。これは、新しいVisual Studio 2013へのソリューションの移植中に発生しました。ソリューションは、マネージド プロジェクトとアンマネージド プロジェクト/コードのさまざまな組み合わせです。問題 (および修正) は、ソリューション フォルダーにapp.configファイルが見つからないことになりました。これを理解するのに1日かかりました:(、出力ログはあまり役に立ちませんでした。
私の問題は、デバッグしようとしていた .dll ファイルを使用する他のアプリケーションが原因でした。
.dll を使用していたアプリケーションを閉じると、解決しました。