使用高版本的 GCC 编译的程序在低版本 glibc 的机器上运行的时候会提示:
libc.so.6: version 'GLIBC_2.14' not found
之类的错误,这是因为 GCC 所连接的 glibc 版本高于目标系统的 glibc 的版本。查看 libc.so.6 所支持的版本的方法: strings /lib/libc.so.6 | grep GLIBC_ 。
解决这一问题要么升级系统的 libc,要么使程序使用自己的一套 libc 。如果选择后者,需要在连接的时候指定库的优先搜索位置。并且还要指定 ld-linux.so 的位置,否则会提示段错误 Segmentation fault。
QMAKE_LINK += -Wl,-rpath=./lib:/usr/local/bs230/lib -Wl,-dynamic-linker=/usr/local/bs230/lib/ld-linux.so.3
注意:使用相对路径时所相对的是执行者所在的位置(pwd)
比如在 /home 调用 /usr/local/bs230/bsinfo 会在查找 /home/lib 文件夾,而不是 /usr/local/bs230/lib
|