模倣ライブラリのインストール ファイルをダウンロードし、INSTALL の指示に従いました。
./configure
一連のチェックを経てメイクファイルを作成するスクリプト。
make
この異なる .o および .lo ファイルが元のフォルダーに表示された後、cpp ファイルをコンパイルします。
make install
多くのことをしているようですが、私が気付いているように見える唯一のことは、すべてのヘッダーファイルを含む /usr/local/include の下に模倣ディレクトリが表示されることです。
可能な限り最も単純なメインファイルをコンパイルしようとするよりも:(ライブラリサイトで提供されているように:元の例)
#include <mimetic/mimetic.h>
using namespace mimetic;
int main()
{
MimeEntity me;
return 0;
}
次のコマンドでコンパイルしています(CentOS 5.7、gccバージョン:4.1.2):
g++ mimetic.cpp
私が得るエラー:
/tmp/ccWnsteO.o: In function `main':
mimetic.cpp:(.text+0x80): undefined reference to `mimetic::MimeEntity::MimeEntity()'
mimetic.cpp:(.text+0x91): undefined reference to `mimetic::MimeEntity::~MimeEntity()'
collect2: ld returned 1 exit status
このことから、ヘッダー ファイルは見つかったものの、ソース/ライブラリ自体が見つからないことがわかりました。
MimeEntity コンストラクター宣言は /usr/local/include/mimetic/mimeentity.h に表示されます。mimeentityを検索すると、次のようになります。
/home/mimetic-0.9.7/mimetic/mimeentity.o
/home/mimetic-0.9.7/mimetic/mimeentity.h
/home/mimetic-0.9.7/mimetic/mimeentitylist.h
/home/mimetic-0.9.7/mimetic/mimeentity.cxx
/home/mimetic-0.9.7/mimetic/.libs/mimeentity.o
/home/mimetic-0.9.7/mimetic/mimeentity.lo
/home/mimetic-0.9.7/mimetic/.deps/mimeentity.Plo
/usr/local/include/mimetic/mimeentity.h
/usr/local/include/mimetic/mimeentitylist.h
ライブラリへの検索パスを試してみましたが、同じエラーが表示されます
g++ mimetic.cpp -L/home/mimetic-0.9.7/mimetic/
メインの mimetic.cpp ファイルを次の行でコンパイルしようとすると、何か他の奇妙なことが起こっています
MimeEntity me;
に変更
MimeEntity me();
コンパイルします。