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


117

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

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

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

回答:


153

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

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

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

に:

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

引用符を追加したところ。


17
あなたはちょうど2日のバグ追跡を30秒のものに絞首刑にしたばかりの神:)
jb。

10
私も同じ問題を抱えていました。リンカーは正しいがlibディレクトリが正しく設定されていない場合、同じエラーが発生することがあります。探してみライブラリディレクトリ> - > VC ++ディレクトリ-構成プロパティが正しくライブラリを設定するかどうかを確認します。libフォルダーは、x86フォルダーとx64フォルダーで構成される場合があります。両方を含むフォルダーではなく、(コンパイラーに応じて)それらのいずれかに設定する必要があります。
M4st3rM1nd 2013

1
の後にセミコロンを付けることを忘れないでください"C:\Program Files\sofware sdk\lib\library.lib"。a ;がないと、プロジェクトが正しくコンパイルされません。
roscioli 2014年

1
Visual Studio 2005(Windows 8.1)を使用してOpenCVを構築しようとしたときにこの問題が発生しました...そしてそれで解決しました。すごい!
AlainD 2014年

1
試してみましたがうまくいきませんでした。 "Qt5Xmld.lib"; "Qt5XmlPatternsd.lib"; "Qt5Cored.lib";%(AdditionalDependencies) -何を変更する必要がありますか?
STF 2016年

65

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

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


4
これも私の問題でした!
Kamran Bigdely 2014年

1
これは、MS Security Essentialsがファイルをロックしているために発生します。
Synetech

はい、前のコンソールウィンドウを閉じたところ、突然libが読み取られました。
Kari

15

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

これはVS 2013 Ultimate、Windows 8.1で発生しました。


4
ああ、マイクロソフト...私たちの最初の試みは常に閉じて再開する(または電源をオフにしてからオンにする)必要があります
Leonardo Alves Machado

1
私はこのソリューションが私の問題を解決できるほど恥ずかしいです。今では、外に出て友達や家族に会うことはできません。
javaLover 2017年

2
あなたはキャロルと同じ問題を抱えていました。
amod

10

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


私の場合も問題でしたが、このフラグをオンにしたい場合はどうすればよいですか(Prepossessedファイルを表示するため)。
Guy Avraham 2016年

2
ここにいくつかの回避策があります:前処理されたコードを出力してコンパイルする方法(Visual Studio)およびここ:/ p引数を使用してプロジェクト(VS 2008)をコンパイルする(ファイルへの前処理)は、コンパイルしません。しかし、本質的にはコンパイラー・オプションであるため、両方ではなくいずれかを実行します。
Assaf Levy

4

同じ問題が発生しました。追加のライブラリパスのフォルダ名の「、」が原因です。追加のライブラリパスを変更することで解決しました。



3

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


3

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

解決策2:

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

私は時々、ファイルシステムまたはそれを制御している人がその権限で失われると思います。Windowsセッションを再起動する前に、ゾンビmsbuild32.exeプロセスを強制終了し、Visual Studioを再起動し、問題のあるファイルが表示されているものもチェックしません。ビルド構成の問題はありません。それは時々起こります。Windowsの一部の内部機能が修正されず、再起動が必要です。


私はVS2019でこの問題を抱えていました...これで修正されました...バグが続くのは驚くべきことです thx
JHBonarius

2

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

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


2

同じ問題がありましたが、私の解決策は回答に記載されていません。私のウイルス対策プログラム(AVG)はファイルMyProg.exeをウイルスと判断し、それを「ウイルス保管庫」に入れました。この保管庫をチェックし、ファイルが存在するかどうかを確認する必要があります-その後、それを復元してください。それは私を助けました。


1

アセンブリプロジェクト(ProjectName-> Build Dependencies-> Build Customizations-> masm(selected))の場合、Generate Preprocessed Source ListingTrueに設定すると問題が発生し、設定をクリアすると修正されました。ここVS2013。


1

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



0

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

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


0

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


0

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

幸いにも、私はこれらすべてのファイルのバックアップを持っていて、問題を解決するために、このエラーがDEBUGフォルダーにスローバックしていたファイルを取得しました。エラーコードは、この投稿の回答の1つからこのヒントに再度アクセスするために多くの時間を費やす必要があったため、誤解を招く可能性がありました。

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



0

私は同じエラーがありました:

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

これは;最後のが原因でした。複数のライブラリがある場合は、コンマやセミコロンではなく、空のスペース(スペースバー)で区切る必要があります。

したがって、;ライブラリをリストするときは、何も使用しないでください。Project properties >> Configuration Properties >> Linker >> Input


0

上記の解決策を試しましたが、うまくいきませんでした。だから私はexeの名前を変更してソリューションを再構築します。わたしにはできる。


0

Visual Studio 2019でVC ++ DLLをビルドすると、この正確なエラーが発生しました。

LNK1104:ファイル 'C:\ Program.obj'を開けません

プロジェクトの[プロパティ]> [リンカー]> [入力]> [モジュール定義ファイル]で判明したように、ファイル名の末尾に一致ない二重引用符が付いいる defファイルを指定しました。一致しない二重引用符を削除すると、問題が解決しました。


0

殺さmsbuild32.exeれ、再び建てられました。それは私のために働いた。


-1

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

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

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


-3

同じ問題が発生していました。コードを新しいプロジェクトにコピーしてビルドを開始しました。その他のエラーが発生し始めました。エラーC4996: 'fopen':この関数または変数は安全でない可能性があります。代わりにfopen_sの使用を検討してください

この問題を再度解決するために、Projectプロジェクトに次のように1つのプロパティを追加しました。プロジェクト->プロパティ->構成プロパティ-> c / c ++。このカテゴリには、フィールド名のプリプロセッサ定義があります。問題を解決するために_CRT_SECURE_NO_WARNINGSを追加しました。

ありがとうございました


この回答は元の投稿とは関係ありません。
zar

セキュリティ機能を無効にすることは言うまでもありません
Matti Virkkunen
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.