web-dev-qa-db-ja.com

Visual StudioでC ++プロジェクトをコンパイルすると、致命的なエラー「LNK1104:ファイル 'C:\ Program.obj'を開けません」が発生するのはなぜですか?

Visual Studio 2008で新しいC++プロジェクトを作成しました。コードはまだ作成されていません。プロジェクト設定のみが変更されています。

プロジェクトをコンパイルすると、次の致命的なエラーが発生します。

致命的なエラーLNK1104:ファイル 'C:\ Program.obj'を開けません

110
Josh Sklare

この特定の問題は、パスにスペースが含まれるlibファイルへの依存関係を指定することにより発生します。プロジェクトを正しくコンパイルするには、パスを引用符で囲む必要があります。

プロジェクトのプロパティの構成プロパティ->リンカー->入力タブには、追加の依存関係プロパティがあります。この問題は、このプロパティを以下から変更することで修正されました。

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

に:

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

引用符を追加した場所。

143
Josh Sklare

これは、ファイルがまだ実行されている場合に発生する可能性があります。

:-1:エラー:LNK1104:ファイル 'debug\****。exe'を開けません

59
Carol

Visual Studioを閉じて再度開いた後、問題は解決しました。問題が発生した理由はわかりませんが、一見の価値があるかもしれません。

これは、VS 2013 Ultimate、Windows 8.1で行われました。

13
Daniel Neel

これがオンになっていないことも確認してください。構成プロパティ-> C/C++->プリプロセッサ->ファイルへの前処理

5
Assaf Levy

私の問題は、.lib拡張子の欠落でした。mylibに対してリンクしているだけで、VSはmylib.objを探すことにしました。

4

同じ問題がありました。追加のライブラリパスのフォルダー名に「、」が含まれていたためです。追加のライブラリパスを変更することで解決しました。

4
harsini

私の場合、それは誤った指示の問題でした。プロジェクトは別のプロジェクトの出力を参照しましたが、後者は前者が探していたファイルを出力しませんでした。

3
Newtopian

このリストに従って、すべての設定を確認しました: http://msdn.Microsoft.com/en-us/library/ts7eyw4s.aspx#feedback 私にとっては助かります。私の状況では、プロジェクトのプロパティのリンク依存関係に二重引用符が付いていることがわかりますが、二重引用符は存在しないはずです。

1
David

同じエラーが発生しました。インストールしたNugetパッケージ(ヘッダーのみではないパッケージ)をアンインストールしようとしました。
私にとって間違っていたのは、.cppファイルの1つにアンインストールしたばかりのパッケージのヘッダーがまだ含まれていることです(かなりばかげた、はい)。
Project -> Properties -> Linker -> Generalにある追加のライブラリディレクトリリンクも削除しましたが、もちろん存在しないヘッダーを参照しようとしていたため、役に立ちませんでした。

この場合、紛らわしいエラーメッセージです。ヘッダー名は<boost/filesystem.hpp>でしたが、エラーにより"cannot open file 'llibboost_filesystem-vc140-mt-Gd-1_59.lib'"が表示され、行番号などは表示されませんでした。

1
Matthias

解決策1(私の場合):Windowsエクスプローラープロセスを再起動します(はい、Windowsファイルマネージャー)。

解決策2:

  1. Visual Studioを閉じます。 Windowsログオフ
  2. ログオンし、Visual Studioを再度開きます
  3. 通常どおりビルドします。問題のあるファイルをビルドしてアクセスできるようになりました。

私は時々、ファイルシステムまたはそれを制御している人がその許可で失われると思います。 Windowsセッションを再起動する前に、ゾンビのmsbuild32.exeプロセスを強制終了し、Visual Studioを再起動し、問題のファイルが表示されていないことを確認しました。ビルド構成の問題はありません。それは時々起こります。 Windowsのいくつかの内部的な問題は解決せず、再起動が必要です。

1
Lissandro

私は同じ問題を抱えていましたが、私のケースの解決策は回答にリストされていません。私のウイルス対策プログラム(AVG)は、ファイルMyProg.exeをウイルスと判断し、「ウイルス保管庫」に入れました。この倉庫を確認し、ファイルが存在する場合は、復元する必要があります。助けてくれました。

1

アセンブリプロジェクトの場合(ProjectName-> Build Dependencies-> Build Customizations-> masm(選択))、Generate Preprocessed Source Listing to Trueも問題を引き起こし、設定をクリアすると修正されました。 VS2013はこちら。

1
MadeOfAir

メインの実行可能ファイルが見つからないと文句を言うリンカで同じ問題が発生します。これは、新しいVisual Studio 201へのソリューションの移植中に発生しました。このソリューションは、マネージドプロジェクトとアンマネージドプロジェクト/コードのさまざまな組み合わせです。問題(および修正)は、ソリューションフォルダーに欠落しているapp.configファイルになりました。出力ログはあまり役に立たなかったので、これを理解するのに1日かかりました:(.

1
Nicko Po

LNK2038エラーと関連してこの問題が発生したため、この post に従ってRELEASE DLLとDEBUG DLLを分離しました。このプロセスでは、これらの依存関係が存在するフォルダー全体をクリーンアップしました。

幸いなことに、これらすべてのファイルのバックアップがあり、このエラーがDEBUGフォルダーにスローされていたファイルを取得して、問題を解決しました。エラーコードは何らかの形で誤解を招くものでした。この投稿の回答の1つからこのヒントを得るまでに多くの時間を費やさなければならなかったからです。

この答えを願って、困っている人を助けます。

0
N00b Pr0grammer

私は同じエラーが発生しました:

fatal error LNK1104: cannot open file 'GTest.lib;'

これは、最後の;が原因でした。複数のライブラリがある場合は、空のスペース(スペースバー)で区切ってください。コンマやセミコロンは使用しないでください!

そのため、ライブラリをリストするときに;などを使用しないでください Project properties >> Configuration Properties >> Linker >> Input

0
zar

私の場合、以前のGame Engine Graphicsコースの数学ライブラリファイルをGLMに置き換えました。問題は、(それらがプロジェクトリポジトリにあったとしても)Visual Studioのソリューションエクスプローラー内のプロジェクトにそれらを追加しなかったことです。

0
Artorias2718

「Visual Studio 2013」でも同じ問題が発生しました。

LNK1104: cannot open file 'debug\****.exe

Visual Studioを閉じて再起動すると解決しました。

0
user3860869

私が答えているのは、この特定のソリューションが他の誰によってもリストされていないからです。

どうやら私のアンチウイルス(Ad-Aware)はDLLにフラグを立てており、私のプロジェクトの1つが依存しており、それを削除していました。 DLLが存在するディレクトリを除外した後でも、コンピューターを再起動するまで同じ動作が続きました。

0
easuter

addingandexisting projecttomysolution、which I追加を忘れた初めて。

0
Markus Weber