Visual Studio .NET 2003- libcmt vs libcmtdの特定のライブラリを無視する

StackOverflow https://stackoverflow.com/questions/4344569

  •  30-09-2019
  •  | 
  •  

質問

同僚がソフトウェアを開発するときにコピーしてカスタマイズするテンプレートと.NET 2003プロジェクトがあります。

テンプレートはしばらく前に変更されて、リリースとデバッグの両方のビルドの両方にlibcmt.libを持つように無知な点数プロパティを設定したようです(つまり、リリースとデバッグの両方で、ビルドはリンカーにlibcmt.libを無視する必要があります)。

これに基づいたいくつかのプロジェクトは、その後作成され、リリースビルドがlibcmtd.libで引っ張られています(プロジェクト.mapファイルを調べることで明らかです)。設定されていた)。

libcmt.libを除外するために無知の設定を設定して、libcmtd.libに対するプロジェクトリンクを自動的に作成しますか?

奇妙なのは、libcmt.libに対するテンプレート(誤った設定で)リンクを構築するのに対し、Libcmtd.libに対するカスタマイズされたプロジェクトの一部(すべてではありませんが)リンクがあるということです。

何か案は?

役に立ちましたか?

解決

これが起こったことです:

リンカーをコンパイルした後、オブジェクトファイルを取り、とりわけ記号テーブルを作成します。これには、フルフィルが施されていないSymol-Requestがあります。次に、リンカーは、これらの充填されていないシンボルを解決するライブラリのリストを通過します。 libcmt.libを無視しているため、サードパーティライブラリは未解決のシンボルを残したり追加したりしており、debugオプションが施されているため、licmtd.lib(および他のLIBも他のLIB)から解決するリンカー要求が含まれています。

libcmt.libを無視していなかった場合、これらのシンボルはlibcmt.libによって解決される可能性が高く、libcmtd.libから物を引き込む必要はありませんでした(まだ満たされていない他のシンボルを解決するために見られますが)

igmore libcmtd.libも試みることができます。 unsolvd externalsを取得した場合、libcmt.dllを無視することは良い考えではありませんでした。

他のヒント

多くのプロジェクトは、動的バージョンmsvcrt.libと矛盾するため、libcmt.libを無視しています。リンカーでlibcmtを無視する

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top