私は autotools の初心者です。xerces-c 3.1 を使用して、xml ファイルを解析する必要があるアプリケーションを実行しています。
apt-get ユーティリティを使用して xerces-c ライブラリをインストールすると、私のコードは正常に動作します (その後、xerces-c ライブラリとインクルード ファイルがそれぞれ /usr/lib と /usr/include/xercesc にインストールされます)。configure.ac ファイルには、次のマクロがあります。
AC_CHECK_LIB([xerces-c],[main],[],[AC_MSG_ERROR([*** xerces-c lib not found])])
OK、私が言ったように、これは期待どおりに機能します。ただし、プロジェクトディレクトリ内にライブラリを配置したい (配布パッケージに含める) と、ここから問題が始まります。
xerces-c ライブラリをアンインストールし、xerces-c ライブラリ (xerces-c Web ページからダウンロード) をプロジェクト ディレクトリにコピーします。次に、configure.ac にマクロを追加します。
LDFLAGS="$LDFLAGS -L/home/xxxx/workspace/P3/src/lib"
最後に、プロジェクトのルート ディレクトリで次のコマンドを実行するだけで、makefile を生成してコンパイルします。
- autoconf
- automake
- 。/構成、設定
- 作る
コンパイルは良さそうで、リンクも問題ないようです:
g++ -g -O2 -L/home/xxxx/workspace/P3/src/lib -o app app-P3.o -lxerces-c
しかし、アプリケーションを実行すると、次のようなエラーが発生しました。
./src/app: error while loading shared libraries: libxerces-c-3.1.so: cannot open shared object file: No such file or directory
私が間違っていることは何ですか?
前もって感謝します。