2017-06-28 16 views
-1

私はcentos 7でdockerソースを構築したいと思っています。これはgoとC++を使い、lib lvm(libdevmapper)に依存しています。私の質問は:libdevmapper静的ライブラリをビルドする方法ですか?私は設定フラグでそれをコンパイルlibdevmapper静的ライブラリをビルドするには?

: [テスト@ localhostのLVM2] $ ./configureを--enable-static_link --disable-selinuxを

make[1]: Entering directory `/home/test/modi-source/thirdSoftware/lvm2/tools' 
gcc -O2 -fPIC -O2 -L../libdm -L../lib -L../libdaemon/client -static -L../libdm/ioctl -o lvm.static \ 
     command.o dumpconfig.o formats.o lvchange.o lvconvert.o lvconvert_poll.o lvcreate.o lvdisplay.o lvextend.o lvmcmdline.o lvmdiskscan.o lvreduce.o lvremove.o lvrename.o lvresize.o lvscan.o polldaemon.o pvchange.o pvck.o pvcreate.o pvdisplay.o pvmove.o pvmove_poll.o pvremove.o pvresize.o pvscan.o reporter.o segtypes.o tags.o toollib.o vgcfgbackup.o vgcfgrestore.o vgchange.o vgck.o vgcreate.o vgconvert.o vgdisplay.o vgexport.o vgextend.o vgimport.o vgmerge.o vgmknodes.o lvpoll.o vgimportclone.o vgreduce.o vgremove.o vgrename.o vgscan.o vgsplit.o lvm-static.o -llvm-internal -ldaemonclient -ldl -ldevmapper -lrt 
../lib/liblvm-internal.a(sharedlib.o): In function `load_shared_library': 
sharedlib.c:(.text+0x131): warning: Using 'dlopen' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking 
../libdm/ioctl/libdevmapper.a(libdm-string.o): In function `dm_size_to_string': 
libdm-string.c:(.text+0x11d0): undefined reference to `nearbyint' 
libdm-string.c:(.text+0x11e5): undefined reference to `floor' 
../libdm/ioctl/libdevmapper.a(pool.o): In function `dm_pool_create': 
pool.c:(.text+0x15c): undefined reference to `pthread_mutex_lock' 
pool.c:(.text+0x177): undefined reference to `pthread_mutex_unlock' 
../libdm/ioctl/libdevmapper.a(pool.o): In function `dm_pool_destroy': 
pool.c:(.text+0x1f9): undefined reference to `pthread_mutex_lock' 
pool.c:(.text+0x20d): undefined reference to `pthread_mutex_unlock' 
../libdm/ioctl/libdevmapper.a(pool.o): In function `dm_pools_check_leaks': 
pool.c:(.text+0x640): undefined reference to `pthread_mutex_lock' 
pool.c:(.text+0x6d5): undefined reference to `pthread_mutex_unlock' 
pool.c:(.text+0x720): undefined reference to `pthread_mutex_unlock' 
/usr/lib/gcc/x86_64-redhat-linux/4.8.5/libgcc_eh.a(unwind-dw2-fde-dip.o): In function `__register_frame_info_bases': 

make && make installすることができますいずれか誰がlibdevmapperを静的にビルドするのですか? wuwuwuuuuuw ......

答えて

0

DMバージョンが97以上の場合は修正します。 glibcが更新されるので、すべてのlibは静的なlibファイル(exp。libdevmapper.aはlibudev.aを使用)でコミットされます。

関連する問題