Runtime 不要の プログラム作成

Visual Studio .Net Framework 以降では、デフォルト構成では、再頒布可能なRuntimeをインストールしないと使えない実行ファイルが生成されるのですが、これを回避するために、プロジェクトのプロパティを色々変更する必要があります。


afx2
1. まず、ランタイムライブラリの形式を マルチスレッド (/MT) に変更する。

afx1
2._AFX のつくプリプロセッサが定義されている場合は、除外する。
継承されている場合は、継承のチェックをはずす。

nafxcw.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator
 new(unsigned int)" (??2@YAPAXI@Z) は 既に LIBCMT.lib(new.obj)
 で定義されています。
nafxcw.lib(afxmem.obj) : error LNK2005: "void __cdecl operator
 delete(void *)" (??3@YAXPAX@Z) は 既に LIBCMT.lib(delete.obj)
 で定義されています。
Release/test.exe : fatal error LNK1169: 1つ以上の複数回定義されている
シンボルが見つかりました。

3.上記のようなエラーが出ている場合は、

afx3
リンカの入力に、Nafxcw.lib Libcmt.lib(デバッグ版は:Nafxcwd.lib Libcmtd.lib) を追加する。

関連サイト:
[PRB] C ランタイム ライブラリを MFC ライブラリより先にリンクしたときの LNK2005 エラー

おすすめ

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です