Eclipse CDT と MinGWを使っていたけど、なんだかうまくいかないので Eclipse CDT と cygwin に変えてみた。

で、今度はライブラリがリンクされないという問題が発生。ちゃんとライブラリのあるパスを設定しているのにな~と思っていたら ld コマンドに -l というオプションがあることに気付いた。

-lar
アーカイブファイル ar をリンクするファイルのリストに加える。このオプションは何回でも指定できる。 ld は ar が指定されるごとに、 libar.a が見つかるまで検索パスを探す。

Manpage of ld

つまり zlib をリンクするには -lz が必要で libpng をリンクするのは -lpng をオプションに指定しないといけなかったわけで、手元にあるC言語の入門書とかを探してもそんなこと書いてなくてずっとハマってた。

やっぱり、慣れてない環境はツライなぁ。。。

tags: EclipseCDT C++ zurazure

Posted by NI-Lab. (@nilab)