読者です 読者をやめる 読者になる 読者になる

C++ とリンカエラー

もう一つうんざりなのは, リンカのエラー診断だ。ただライブラリをダウンロードして使うなんてことが決してできない。
...
コンパイラがアップグレードするたびに、私はアプリケーションとライブラリ全体を再コンパイルしてその中でいつも不可解なエラーを診断して数時間つぶした。

それが嫌いになる理由ですか・・・
筆者のいう暗号的なエラーってテンプレートのエラーのことだよね
C++0x のコンセプトで解消されますよ

コンパイラがアップグレードするたびに再コンパイルしてエラーになるって…
作りが悪いか、コンパイラに文句言ってください

あー,それはちょっと違うかも.例えば Visual C++ 6.0 用の d3dx8.lib を Visual C++ .NET 2003 で使おうとしてリンカエラーで嵌るとかその辺だったりしないですかね?
まあその場合,C++ 固有の問題と言うよりは,C 由来の問題という気がしなくもないのですが,気が滅入る作業なのは確かです.最近の D3DX は完全 DLL 化したのでこの問題を目にする機会も減りましたが,google:D3DX NODEFAULTLIB あたりで検索してみると昔を思い出します.
Google で軽く検索してみた感じ,以下の記事もリンカの罠ですなぁ.まあこれも C++ というよりは C の問題ですが.

昔作ったlibpngとzlibのバージョンが1.2.4(2002)と1.1.4(2002)と4,5年前のもの。しかもこの間libpngで大きなバグも出ていたので思い切ってバージョンをアップしてみる。そしてそれが苦悩の始まりであり、昨日終電で帰る羽目となったのでした…((ノ#-_-)ノ ミ┴┴

C/C++ とバイナリ再利用の相性の悪さというテーマなら数時間つぶせる自信がありますので,そのテーマで議論されたい方がいらっしゃいましたらオフラインで是非*1

*1:まあバイナリ再利用の話を「賢い人たち」が熱く語っていたのは 2001 年ごろまでで,今はもう彼らは別のところに行ってしまっているような気もしますが