在使用gcc进行编译时,由于涉及到了移植问题(大概吧),把部分动态链接库复制到了工程的文件夹下,但是在进行编译的时候,会出现提示libxxx.so need by libxxx.so,not found(try using -rpath or -rpath-link)
该提示我理解的意思应该是动态链接库没有找到,需要使用-rpath进行指定,使用-rpath只需要在gcc命令中添加-Wl,-rpath=<动态库文件位置>
未使用-Wl,-rpath=.时:
linux-vdso.so.1 (0x00007ffd17acb000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f042bd55000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f042ba54000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f042b83e000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f042b493000)
/lib64/ld-linux-x86-64.so.2 (0x00007f042c060000)
使用之后:
linux-vdso.so.1 (0x00007ffd765be000)
libstdc++.so.6 => ./libstdc++.so.6 (0x00007f5966823000)
libm.so.6 => ./libm.so.6 (0x00007f5966522000)
libgcc_s.so.1 => ./libgcc_s.so.1 (0x00007f596630c000)
libc.so.6 => ./libc.so.6 (0x00007f5965f61000)
/lib64/ld-linux-x86-64.so.2 (0x00007f5966b2e000)
可以发现,动态链接库已经指向当前文件夹
---------------------