Visual Studio(2013)で "mylib.lib"という静的なC++ライブラリを作成しました。それはマルチスレッド(/ MT)であり、ライブラリアン/ Generalの下にある "出力ファイル"を "$(OutDir)$(TargetName)$(TargetExt)"に指定していますので、 "mt"私が '/ MT'を使用したからといって、ファイル名の最後に強制的に入ります。Visual Studioで依存関係ライブラリ名を使用するように強制するにはどうしたらいいですか?
このプロジェクトは他のいくつかの依存関係にもリンクしているので、アプリケーションを使用して消費するためにすべてが1つの巨大な "mylib.lib"ファイルに入っています。これらの他のライブラリは、 "A.lib"、 "B.lib"、 "C.lib"です。また、ファイル名の末尾に "mt"がないように出力名を指定してビルドされています。
私は "/ MT"を使ってビルドするC++アプリケーションで "mylib.lib"を使いたいと思います。アプリケーションはそのライブラリとリンクし、そのライブラリ内で単一の関数を呼び出します。アプリケーションが "ファイル 'Amt.lib' LNK1104 'を開くことができないため、リンクできません。
このアプリケーションは "A.lib"に直接依存せず、依存関係はすでに "mylib.lib"に含まれています。 "mylibmt.lib"としてリンクしようとしていません。 1つのケースでは「mt」という接尾辞を適用しても、別のケースでは適用されないように見える恣意的な決定が混乱します。
ここではVisual Studioの心の中で何が起こっていますか?そして、特定のライブラリに "mt"を追加しないように伝える方法はありますか?
"このプロジェクトは他のいくつかの依存関係にもリンクしているので、アプリケーションを使用して消費するためにすべてが1つの巨大な" mylib.lib "ファイルに入っています。 libファイルは他のlibファイルとリンクしません。 – tkausl
@tkausl:[彼らは](https://stackoverflow.com/questions/47719975/how-can-i-force-visual-studio-to-use-dependency-library-names-i-want-it-to )、一種。 – MSalters
mylib.libはビルド後かなり大量ですので、私は彼らがそこにいると確信しています...?いずれにせよ、私はまだ名前の最後に "mt"を入れないようにする必要があります。 – Bungles