Qt项目使用到的基础库迎来重大更新,最近在项目里面集成。搞了几天,将一些笔记整理如下。
1.LD_LIBRARY_PATH
环境变量 和 LIBS
关键字
Linux环境变量LD_LIBRARY_PATH
& Qt的pro文件中的LIBS
关键字的区别。弄清概念的关键是区分“编译时”和“运行时”。
LD_LIBRARY_PATH
环境变量:由程序使用,它指定了程序在运行时会去何处寻找动态链接库(除默认路径外)。- qmake中的
LIBS
关键字:由编译器使用,它指定了编译程序时,需要链接的具体的库。 - 此外还有
LIBRARY_PATH
环境变量:由编译器使用,它指定了编译程序时会去何处寻找动态链接库(除默认路径外)。
编译通过,运行时报xxx: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
。是因为没有指定把库路径指定到LD_LIBRARY_PATH
中,导致运行时找不到库
扩展阅读:
[1] linux下ld链接器链接的路径顺序: