无锡网站制作的公司,上海企业服务公司,建设部 网站,网站界面 欣赏对于以压缩包发布的软件#xff0c;在它的目录下通常都有一个配置脚本configure#xff0c;它的作用确定编译参数(比如头文件位置、连接库位置等)#xff0c;然后生成Makefile以编译程序。可以进入该软件的目录#xff0c;执行./configure --help命令查看使用帮… 对于以压缩包发布的软件在它的目录下通常都有一个配置脚本configure它的作用确定编译参数(比如头文件位置、连接库位置等)然后生成Makefile以编译程序。可以进入该软件的目录执行./configure --help命令查看使用帮。 一个程序能正确编译、链接、运行需要满足3个条件预处理时能找到头文件连接时能找到库(静态库或动态库运行时能找到库。下面介绍库文件的搜索路径 编译的时候: gcc最先搜索-L参数指定的路径---gcc的环境变量LIBRARY_PATH设置的路径---内定目录 /lib /usr/lib /usr/local/lib 这是当初compile gcc时写在程序内的 1.“-L”指定连接时库的搜索路径这些库使用-l来显示指定,比如-labc表示的库文件为libabc.so 2.-rpath-link比-L多一项功能它指定的目录还可以用于搜索依赖库。 3.-rpath比-rpath-link多一项功能它指定的目录会被编译进程序中当程序运行时首先从这些目录中寻找库。 怎样指定-rpath-link呢连接器arm-linux-ld通常是由arm-linux-gcc间接启动的而arm-linux-gcc并不认识-rpath-link选项所以需要在前面加上关键字-Wl,表示选项用于连接器。在执行配置命令configure之前设置LDFLAGS即可比如 export LDFLAGS-Wl,-rpath-link-Wl,/work/crossbuild/X/lib -Wl,-rpath-link-Wl,/work/corssbuild/GTK/lib ./configure 运行的时候(搜索动态链接库) 路径一编译时使用-rpath指定目录。 路径二在配置文件/etc/ld.so.conf中指定动态库搜索路径 路径三通过环境变量LD_LIBRARY_PATH指定动态库搜索路径当通过该环境变量指定多个动态库搜索路径时路径之间用冒号分隔 路径四在编译目标代码时指定该程序的动态库搜索路径编译时通过gcc 的参数-Wl,-rpath,当指定多个动态库搜索路径时路径之间用冒号:分隔 路径五默认的动态库搜索路径转载于:https://www.cnblogs.com/linuxbo/p/4301750.html