VC PlusPlus:Link Error LINK2019 未解決のシンボル…で参照されました。 対処方法 新しいページはコチラ
提供: yonewiki
(→知っていた方が良い小技) |
(→概要) |
||
11行: | 11行: | ||
簡単ではないいくつかのパターンについて、ココで一緒に考えていきましょう。 | 簡単ではないいくつかのパターンについて、ココで一緒に考えていきましょう。 | ||
+ | |||
+ | === ''' 知っていた方が良い知識 ''' === | ||
+ | '''1.切り分けという概念''' | ||
+ | |||
+ | Libファイルを使うということは、よくわからない何かと結びつけることもあると思いますが、わからないなりに守っておくべきことがあります。考えすぎになってしまうこともありますが、32bit版でコンパイルするプログラムには32bit版の*.libファイルを、64bit版でコンパイルするプログラムでは64bit版の*.libファイルを用意するようにしましょう。ライブラリ側の作りによっては意識する必要がない場合もあります。 | ||
+ | |||
+ | |||
+ | そして、Debug版とRelease版もわけるべきです。例えば良く使われるマイクロソフトのC言語ランタイムライブラリでは、msvcrt.libという名前ですがデバッグ版はmsvcrtd.libという名前になっていたりします。Release版のライブラリ名のどこかにdを付け足すのが一般的です。おそらくDebugのdです。Debug版のライブラリって何?って感じですが、Debugという作業を開発環境で実施する場合は、作った関数やプログラムにDebug用のプログラムが一緒に生成されることで実現されています。読み込んだライブラリに対しても、1行づつプログラムを動かして追いかけるにはライブラリがDebug版として生成されたものである必要があります。違っていると必ずDebug版のライブラリを参照する仕組みになっている部分があるとリンクエラーになることもあります。Release版は容量が軽くて便利ですが、細かいDebugはできないです。ライブラリがReleaseであっても一行づつ追うことを諦める覚悟ならデバッグは出来ますが、Debug版でなければ動作しないこともあります。 | ||
+ | |||
+ | |||
+ | |||
+ | どこかから入手したオープンソースをビルドする場合、プロジェクトのプロパティ(コンパイルリンク処理のオプション引数)を見て、必要としているライブラリが記述されている場合があります。頑張って全部入手できなければ、そのオープンソースソフトウェアをビルドすることは出来ません。オープンソースだからといって、簡単にビルドできるとは限らない事を知っておきましょう。人のプログラムをビルドするだけのことでも、とんでもなく大変な作業になったりすることがあるという覚悟が必要です。手取り足取り、全ての手順をオープンソースプロジェクトの開発者が提供しているWebsiteになっているとは限りません。 | ||
+ | |||
+ | |||
=== ''' 知っていた方が良い小技 ''' === | === ''' 知っていた方が良い小技 ''' === |