web-dev-qa-db-ja.com

リンカー出力ファイルのプロパティファイルがターゲットパスと一致しませんか?

シエラチャートと呼ばれるアプリケーション用に.DLLをコンパイルしようとしています。

これは、すべてリンカー出力値を指すように修正する必要があるという警告です。

警告MSB8012:TargetPath(C:\ SierraChart\VCProject\Release\SCStudies.dll)がリンカーのOutputFileプロパティ値(c:\ sierrachart\data\SCStudies.dll)と一致しません。これにより、プロジェクトが正しくビルドされない可能性があります。これを修正するには、$(OutDir)、$(TargetName)、および$(TargetExt)プロパティ値が%(Link.OutputFile)で指定された値と一致することを確認してください。 C:\ Program Files(x86)\ MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppBuild.targets

何か案は?

15
Rishi

この警告は、C++プロジェクトをVS2010にアップグレードするときに特に表示されると思います。 Visual Studio 2010 C++プロジェクトアップグレードガイド アップグレード中に発生するいくつかの警告について説明します。プロジェクト設定を変更することに不安がある場合は、古いバージョンのVisualStudioを保持することで問題が解決する場合があります。

%(Link.OutputFile)を変更するには、プロジェクトのプロパティを開きます。 [構成のプロパティ]-> [リンカー]-> [一般]に移動します。出力ファイルを$(OutDir)\SCStudies.dllに設定できます。これにより、問題が解決されます。構築する構成/フレーバー(Debug/x86、Release/x86、Debug/Itaniumなど)ごとに変更を繰り返す必要がある場合があります。

9
Mashmagar

これに基づいて 回答

次のプロパティを変更しました。

リンカ->一般->ファイルを「$(OutDir)$(TargetName)$(TargetExt)」に出力

これにより、警告が表示されなくなり、出力が正常に生成されました。

6
DanielV

他の人が言及していない別の修正は、デフォルトでTargetExtが.exeであり、デバッグビルドでは_d.exeに変更しました。代わりに、TargetNameパスでこれを行う必要があります。

1
ngzaharias

元の構成は次のように設定されました。

プロパティ->リンカー->一般:$(OutDir)\"<'name fileA>".exe

プログラムは "_<'name_project>_"。exeを実行しようとし、その結果エラーリンクされました。

構成を次のように設定する必要があります。

プロパティ->リンカー->一般:$(OutDir)\"<'project name>".exe

1

プログラムにとって重要ではないようです。

カスタム学習ビデオをフォローするときの奇妙なVisual Studioエラー

0
Rishi

GerardoHernandezからのコメントは私を助けてくれました。

[一般]-> [出力ディレクトリ]で指定されたディレクトリと、[リンカー]-> [出力ファイル]のパスで指定されたディレクトリが一致している必要があります。

私の場合、Visual Studio6から大規模なプロジェクトをインポートしていました。

C:\Project\myproject\OneOfMyDlls\.\Debug\OneOfMyDlls.dll

等しくなかった

C:\Project\myproject\Debug\OneOfMyDlls.dll

だが

C:\Project\myproject\OneOfMyDlls\..\Debug\OneOfMyDlls.dll

パスを減らした後はそうだったでしょう。

問題は、Visual Studio 2017のインポートで、従来とは異なる親ディレクトリの使用が誤りであると想定して、出力ディレクトリが..\Debugから.\Debugに変更されたことでした。独自のDLLが13個ある大規模なプロジェクト(セカンドパーティとサードパーティのDLLも気にしないでください)では、すべてのDLLを1つの場所に収集するのが理にかなっており、..\Debugは正しかったです。

したがって、他の人がLinker->Output Fileを変更しなければならなかったかもしれませんが、私の場合はGeneral->Output Directoryでしたが、Visual Studio6からのインポートによって破損していたため変更する必要がありました。

インポート後、..\Debugのようなものは.\Debugのようなものになりました。 (実際のプロジェクト固有の名前は削除されました。)

0
Ivan

[一般]-> [出力ディレクトリ]で指定されたディレクトリと、[リンカ]-> [出力ファイル]のパスで指定されたディレクトリが一致している必要があります。

デフォルトを変更する場合は、次の順序で実行します。まず、[一般]-> [出力ディレクトリ]でOutDirを構成します。例えば。

$(SolutionDir)$(Platform)\$(Configuration)\MyProgram\

出力ファイルに一貫性があることを確認してください。例えば。これはうまくいくでしょう

$(OutDir)\$(TargetName)$(TargetExt)
0