共有ライブラリのインストール - 質問と問題

共有ライブラリのインストール - 質問と問題

オンラインでダウンロードした共有ライブラリの「インストール」に問題があります。ライブラリ名はRuntime Access(http://www.runtimeaccess.com/)です。クイックスタートガイドでは、-Lを使用してコンパイルするときにライブラリの場所を定義し、ライブラリディレクトリにパスを追加した後に環境変数LD_LIBRARY_PATHをエクスポートする方法について説明します。まず、なぜライブラリの場所を2回定義するのですか? LD_Library_PATH環境変数に-Lを使用しますか?

2番目の部分。私はこれらのパラメータ渡しを避け、LD_LIBRARY_PATH環境の変更も避けようとしています。

$ gcc myapp.c -lrtadb

だから私はこのライブラリをシステムライブラリの一部として含めたいと思います。そのため、rta-0.8.1フォルダ全体をここにコピーし、ライブラリ/usr/local/lib/rta-0.8.1ディレクトリ/etc/ld.conf.d/rtadb.confへのパスを含むファイルを追加しました/usr/local/lib/rta-0.8.1/src

$ cat /etc/ld.so.conf.d/rtadb.conf 
#rta (run time access) lib
/usr/local/lib/rta-0.8.1/src

sudo ldconfigその後、共有ライブラリのリストを更新しようとしましたが、運がありませんでした。コードをコンパイルしようとすると、ライブラリが見つかりません。

$gcc myappdb.c -lrtadb
/usr/bin/ld: cannot find -lrtadb
collect2: ld returned 1 exit status

私がここで何を間違っているのか?

これは/usr/local/lib/rta-0.8.1/srcにあるファイルのリストです。

user@ubuntu:/usr/local/lib/rta-0.8.1/src$ ls -l
total 724
-rw-r--r-- 1 root root  24994 2012-11-14 10:49 api.c
-rw-r--r-- 1 root root  26132 2012-11-14 11:07 api.o
-rw-r--r-- 1 root root  62634 2012-11-14 10:49 do_sql.c
-rw-r--r-- 1 root root   5419 2012-11-14 10:49 do_sql.h
-rw-r--r-- 1 root root  41184 2012-11-14 11:07 do_sql.o
-rw-r--r-- 1 root root 149186 2012-11-14 11:07 librtadb.a
lrwxrwxrwx 1 root root     15 2012-11-14 11:07 librtadb.so -> librtadb.so.3.0
lrwxrwxrwx 1 root root     15 2012-11-14 11:07 librtadb.so.3 -> librtadb.so.3.0
-rwxr-xr-x 1 root root 117749 2012-11-14 11:07 librtadb.so.3.0
-rw-r--r-- 1 root root   2387 2012-11-14 10:49 Makefile
-rw-r--r-- 1 root root  10962 2012-11-14 11:07 parse.output
-rw-r--r-- 1 root root  21929 2012-11-14 11:07 parse.tab.c
-rw-r--r-- 1 root root    425 2012-11-14 11:07 parse.tab.h
-rw-r--r-- 1 root root  25064 2012-11-14 11:07 parse.tab.o
-rw-r--r-- 1 root root   6711 2012-11-14 10:49 parse.y
-rw-r--r-- 1 root root  46636 2012-11-14 10:49 rta.h
-rw-r--r-- 1 root root  31551 2012-11-14 10:49 rtatables.c
-rw-r--r-- 1 root root  17028 2012-11-14 11:07 rtatables.o
-rw-r--r-- 1 root root  58843 2012-11-14 11:07 token.c
-rw-r--r-- 1 root root   6291 2012-11-14 10:49 token.l
-rw-r--r-- 1 root root  37996 2012-11-14 11:07 token.o

ところで、私はUbuntu 10.04 LTSを実行しています。

ありがとうございます。

編集:この情報に慣れていない場合は、以下のリンクをお読みください。 http://www.tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries.html

答え1

ldこのライブラリはデフォルトのディレクトリの1つではないため、このライブラリを見つける場所を教えてください。リンカーは によって呼び出されるため、gcc後者の-Lオプションが使用されます。

gcc -lrtadb -L/usr/local/lib/rta-0.8.1/src

あなたの場合はそうする必要があります。

関連情報