June 14, 2009
XML
カテゴリ: カテゴリ未分類

意味不明だったエラーのメモスタティックライブラリを作成するプロジェクトをソリューションに追加したところこんなんでました。

msvcprtd.lib(MSVCP90D.dll) : error LNK2005: "public: __thiscall std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> >::~basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> >(void)" (??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ) は既に hogehoge.obj で定義されています。


・解決方法
 プロジェクトのプロパティ→C/C++→コード生成って入るとランタイムライブラリって設定項目がある。ここの内容が、メインで作っていたプログラムのプロジェクトの設定と、新しく追加した、スタティックライブラリのプロジェクトの設定が異なっていたことが原因のようだ。ってなわけで、どっちかのプロジェクトの設定に統一してやれば問題無い。
俺の場合は、メインで作っていたのがマルチスレッドデバッグ(/MTd)だったのに対し、新しくソリューションに追加したプロジェクトはマルチスレッドデバッグDLL(/MDd)となっていた。

そういえば、VC6.0のプロジェクトをVC2008のプロジェクトに変換すると、マルチスレッドデバッグが選択されているが、VC2008で新しく作成するとマルチスレッドデバッグDLLが選択されてるみたいだな。
マルチスレッドデバッグDLLにしておくと、共通して使われるdllが外部から読み込まれる形になるからファイルサイズが小さくなるのは嬉しいんだけど、VC2008が入ってないPCとかだと、使用するDLL考慮して持ってかないと動かないからめんどいってのがあるよなー






お気に入りの記事を「いいね!」で応援しよう

Last updated  April 17, 2012 03:49:03 AM
コメント(529) | コメントを書く


【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! -- / --
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x
X

PR

×

Profile

κгοηοδ

κгοηοδ

Calendar

Comments

russkiemal@ Русские сериалы, фильмы и шоу. Поклонники отечественного кинематографа…
Bentongoaph@ Криминальные фильмы скачать в HD хорошем качестве Портал с фильмами предлагает ознакомить…
CraigBah@ Клиника инновационной хирургии kix-med.ru Клиника инновационной хирургии <small>…
KennethAlume@ перейти на сайт кракен онион зеркало motifri подробнее [url= <small> <a href="https:…
Martinsog@ Насыщенная интересным контентом статья Эта статья для ознакомления предлагает …

Keyword Search

▼キーワード検索


© Rakuten Group, Inc.
Create a Mobile Website
スマートフォン版を閲覧 | PC版を閲覧
Share by: