编译ZermoMQ时修改rpath路径

来源:互联网 发布:荣耀v10网络制式 编辑:程序博客网 时间:2024/06/11 01:01

因为zmq的原生配置rpath和gcc路径一样,无法满足自定义目录的gcc安装环境,所以进行修改

1.解压zmq源码,打开文件Makefile.am,增加-Wl,-rpath,'$$ORIGIN',如下

if ON_LINUXlibzmq_la_LDFLAGS = \-version-info @LTVER@ \@LIBZMQ_EXTRA_LDFLAGS@ \-Wl,--version-script=$(srcdir)/src/libzmq.vers -Wl,-rpath,'$$ORIGIN'else

2.执行命令autoreconf,重新配置

3.执行编译功能

./configure --with-libsodium=no && make clean && make

4.查看rpath

[root@mba zeromq-4.1.4]# readelf -d .libs/libzmq.soDynamic section at offset 0x5c7a0 contains 27 entries:  Tag        Type                         Name/Value 0x0000000000000001 (NEEDED)             Shared library: [librt.so.1] 0x0000000000000001 (NEEDED)             Shared library: [libpthread.so.0] 0x0000000000000001 (NEEDED)             Shared library: [libstdc++.so.6] 0x0000000000000001 (NEEDED)             Shared library: [libm.so.6] 0x0000000000000001 (NEEDED)             Shared library: [libc.so.6] 0x0000000000000001 (NEEDED)             Shared library: [libgcc_s.so.1] 0x000000000000000e (SONAME)             Library soname: [libzmq.so.5] 0x000000000000000f (RPATH)              Library rpath: [/usr/local/gcc-5.3.0/lib/../lib64:$ORIGIN] 0x000000000000000c (INIT)               0xb9e0 0x000000000000000d (FINI)               0x478a8 0x0000000000000004 (HASH)               0x158 0x0000000000000005 (STRTAB)             0x1790 0x0000000000000006 (SYMTAB)             0x650 0x000000000000000a (STRSZ)              3781 (bytes) 0x000000000000000b (SYMENT)             24 (bytes) 0x0000000000000003 (PLTGOT)             0x25ca20 0x0000000000000002 (PLTRELSZ)           3072 (bytes) 0x0000000000000014 (PLTREL)             RELA 0x0000000000000017 (JMPREL)             0xade0 0x0000000000000007 (RELA)               0x28d8 0x0000000000000008 (RELASZ)             34056 (bytes) 0x0000000000000009 (RELAENT)            24 (bytes) 0x000000006ffffffe (VERNEED)            0x27c8 0x000000006fffffff (VERNEEDNUM)         5 0x000000006ffffff0 (VERSYM)             0x2656 0x000000006ffffff9 (RELACOUNT)          1334 0x0000000000000000 (NULL)               0x0


0 0