搜索你感兴趣的问题
ubuntu中c++有静态链接库吗
不惑之道 2019-02-02
分享
推荐回答
喜洋洋 2022-01-19
C/C++程序在linux下被编译和连接时,GCC/G++会查找系统默认的include和link的路径,以及自己在编译命令中指定的路径。自己指定的路径就不说了,这里说明一下系统自动搜索的路径。【1】include头文件路径除了默认的/usr/include,/usr/local/include等include路径外,还可以通过设置环境变量来添加系统include的路径:#CexportC_INCLUDE_PATH=XXXX:$C_INCLUDE_PATH#CPPexportCPLUS_INCLUDE_PATH=XXX:$CPLUS_INCLUDE_PATH以上修改可以直接命令行输入(一次性),可以在/etc/profile中完成(对所有用户生效),也可以在用户home目录下的.bashrc或.bash_profile中添加(针对某个用户生效),修改完后重新登录即生效。【2】link链接库文件路径链接库文件在连接(静态库和共享库)和运行(仅限于使用共享库的程序)时被使用,其搜索路径是在系统中进行设置的(也可以在编译命令中通过-l-L来指定,这里讲的是使用系统默认搜索路径)。一般Linux系统把/lib/usr/lib/usr/local/lib作为默认的库搜索路径,所以使用这几个目录中的链接库文件可直接被搜索到(不需要专门指定链接库路径)。对于默认搜索路径之外的库,则需要将其所在路径添加到gcc/g++的搜索路径之中。链接库文件的搜索路径指定有两种方式:1)修改/etc/so.ld.conf2)修改环境变量,在其中添加自己的路径1)在环境变量中添加动态链接库搜索路径:exportLD_LIBRARY_PATH=XXX:$LD_LIBRARY_PATH静态链接库搜索路径:exportLIBRARY_PATH=XXX:$LIBRARY_PATH以上修改可以直接命令行输入(一次性),可以在/etc/profile中完成(对所有用户生效),也可以在用户home目录下的.bashrc或.bash_profile中添加(针对某个用户生效),修改完后重新登录即生效。2)在/etc/ld.so.conf中添加指定的链接库搜索路径(需要root权限),然后运行/sbin/ldconfig,以达到刷新/etc/ld.so.cache的效果。以上两种方式均可以达到指定链接库搜索路径的效果。
本网站引用、摘录或转载上述内容仅供网站访问者交流或参考,文中观点或信息与爱问公司无关,与之相关的任何事务以及法律责任均与爱问公司无关。
相关推荐
有问题 @爱问
Powered by iask.com