コマンド実行構築する:
g++ -I../include/redis -L../lib/redis redis.cpp -o redis -lhiredis
gccで自分のライブラリにリンクするには?
説明:
私は../lib/redis/
でlibhiredis.so
を持っています。そして/usr/local/lib/hiredis13/
で、このlibhiredis.so
はlibhiredis.so.0.13
.Then I ldd redis
へのシンボルリンクで、ここでの結果はlibhiredis.so
とlibhiredis.so.0.13
あります
linux-vdso.so.1 => (0x00007ffd227f7000)
libhiredis.so.0.13 => not found
libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00007f7ebca0d000)
libm.so.6 => /lib64/libm.so.6 (0x00007f7ebc70b000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f7ebc4f5000)
libc.so.6 => /lib64/libc.so.6 (0x00007f7ebc132000)
/lib64/ld-linux-x86-64.so.2 (0x00007f7ebcd23000)
GCCは、../lib/redis/
にlibhiredis.so
にリンクする必要があり、私は右ですか?
は '' ../ libに/ Redisの/中libhiredis.so'は '記号リンクではありません。 – CharlesLiuChina
適切な 'soname'を使ってライブラリをビルドする必要があります。 –
@GundolfGundelfingerありがとう。私は 'libhiredis.so'を' libhiredis.so.0.13'に改名し、 'libhiredis.so'を' libhiredis.so.0.13'のシンボルリンクにしました。 :-) – CharlesLiuChina