2006年2月6日(月)

static link

VC++ で、 DLL 配布しないでもいいようにスタティックリンクしようとしたら operator new(unsinged int) の多重定義でリンクでコケる……orz

しばらく悩んでいたが、下のような原因だったらしい。
うちの製品を使いたいなら、全ソースで StdAfx.h を include しろなんて、なんとも MS らしい要求だな。

しかし一番ハマったのは、記述が古くて、サポートオンラインで云う様な項目がプロパティに存在しなかったことだ。ちゃんとメンテしろよー。
しかも日本語が意味不明すぎてどれがどう動作するオプションか推測するのも困難なら、ヘルプの記述も限りなく内容が希薄だし……

ちなみに、儂の Visual Studio 2003 だと(あ、古い)、「特定ライブラリの無視」と「追加の依存ファイル」だった。
なにが依存ファイルだ……。

参考:error LNK2005:.knowledge - frog.raindrop.jp

[referer: [an error occurred while processing this directive]]

あわせて読みたい