首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

ld LIBRARY_PATH不搜索LIBRARY_PATH

是指在使用ld命令进行链接时,ld不会搜索LIBRARY_PATH环境变量所指定的路径。

ld是Linux系统下的链接器,用于将目标文件和库文件链接成可执行文件。在链接过程中,ld会按照一定的搜索路径来查找所需的库文件。其中,LIBRARY_PATH是一个环境变量,用于指定额外的库文件搜索路径。

然而,当使用ld命令进行链接时,ld默认不会搜索LIBRARY_PATH所指定的路径。这意味着如果库文件所在的路径只在LIBRARY_PATH中指定,而没有在其他默认搜索路径中,ld将无法找到该库文件,从而导致链接失败。

为了解决这个问题,可以使用-L选项来告诉ld搜索LIBRARY_PATH指定的路径。例如,可以使用以下命令进行链接:

ld -L$LIBRARY_PATH -lmylib main.o -o myprogram

其中,-L选项指定了要搜索的路径,-l选项指定了要链接的库文件。

总结起来,ld LIBRARY_PATH不搜索LIBRARY_PATH意味着在使用ld命令进行链接时,ld默认不会搜索LIBRARY_PATH所指定的路径,需要使用-L选项来指定搜索路径。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

LD_LIBRARY_PATH和LIBRARY_PATH的区别

链接的作用(软件复用): 使得分离编译成为可能; 动态绑定(binding):使定义、实现、使用分离  静态库搜索路径(由静态链接器负责) gcc先从-L寻找; 再找环境变量LIBRARY_PATH指定的搜索路径...动态库搜索路径(由动态链接器负责) 编译目标代码时指定的动态库搜索路径-L; 环境变量LD_LIBRARY_PATH指定的动态库搜索路径; 配置文件/etc/ld.so.conf中指定的动态库搜索路径;...根据链接的时机可知 LIBRARY_PATH环境变量用于在程序编译期间查找动态链接库时指定查找共享库的路径,例如,指定gcc编译需要用到的动态链接库的目录。...设置方法如下(其中,LIBDIR1和LIBDIR2为两个库目录): export LIBRARY_PATH=LIBDIR1:LIBDIR2:$LIBRARY_PATH LD_LIBRARY_PATH环境变量用于在程序加载运行期间查找动态链接库时指定除了系统默认路径之外的其他路径...设置方法如下(其中,LIBDIR1和LIBDIR2为两个库目录): export LD_LIBRARY_PATH=LIBDIR1:LIBDIR2:$LD_LIBRARY_PATH 举个例子,我们开发一个程序

1.3K40

Linux gcc链接动态库出错:LIBRARY_PATH和LD_LIBRARY_PATH的区别

于是重新搜索了gcc LD_LIBRARY_PATH的作用,竟然发现gcc在编译链接时链接的动态库跟LIBRARY_PATH有关而跟LD_LIBRARY_PATH没关系!...3 关于Linux gcc中的LIBRARY_PATH和LD_LIBRARY_PATH参数说明 下面摘取了两篇较权威的说明资料: 1、GNU上关于LIBRARY_PATH的说明: LIBRARY_PATH...通过这三篇资料的说明,很快明白了LIBRARY_PATH和LD_LIBRARY_PATH的作用。...4.1 Linux gcc编译链接时的动态库搜索路径 GCC编译、链接生成可执行文件时,动态库的搜索路径就包含LIBRARY_PATH,具体的搜索路径顺序如下(注意不会递归性地在其子目录下搜索): 1、...4.2 执行二进制文件时的动态库搜索路径 链接生成二进制可执行文件后,运行该程序加载动态库文件时就会搜索包含LD_LIBRARY_PATH路径下的动态库,具体顺序如下: 1、编译目标代码时指定的动态库搜索路径

89610
  • Linux环境变量介绍和区别简介

    简介 LIBRARY_PATH和LD_LIBRARY_PATH环境变量的区别 环境变量文件/etc/profile、/etc/bashrc、~/.bashrc和~/.bash_profile的区别 1....LIBRARY_PATH和LD_LIBRARY_PATH 1.1 LIBRARY_PATH LIBRARY_PATH环境变量用于在程序编译期间查找动态链接库时指定查找共享库的路径,例如,指定gcc编译需要用到的动态链接库的目录...设置方法如下(其中,LIBDIR1和LIBDIR2为两个库目录): export LIBRARY_PATH=LIBDIR1:LIBDIR2:$LIBRARY_PATH 1.2 LD_LIBRARY_PATH...LD_LIBRARY_PATH环境变量用于在程序加载运行期间查找动态链接库时指定除了系统默认路径之外的其他路径 export LD_LIBRARY_PATH=LIBDIR1:LIBDIR2:$LD_LIBRARY_PATH...注意:LD_LIBRARY_PATH中指定的路径会在系统默认路径之前进行查找 2.

    73830

    关于gcc、glibc和binutils模块之间的关系

    注意,在configure前,需要设置ld缺省连接的路径(LIBRARY_PATH=/usr/local/lib:/lib:/usr/lib),否则binutils会configure出错,找不到libc...: (1)ld-linux.so.6在可执行的目标文件中被指定,可用readelf命令查看 (2)ld-linux.so.6缺省在/usr/lib和lib中搜索;当glibc安装到/usr/local下时...,由ldconfig生成二进制的ld.so.cache中 2、编译时,搜索库的路径顺序如下: (1)ld-linux.so.6由gcc的spec文件中所设定 (2)gcc –print-search-dirs...可以通过GCC_EXEC_PREFIX来设定 (3)LIBRARY_PATH环境变量中所设定的路径,或编译的命令行中指定的-L/usr/local/lib (4)binutils中的ld所设定的缺省搜索路径顺序...(可以通过“ld –verbose | grep SEARCH”来查看) 3、二进制程序的搜索路径顺序为PATH环境变量中所设定。

    2.7K91

    linux 动态链接库查找方法;查找动态链接库位置; LIBRARY_PATH 和 LD_LIBRARY_PATH 的区别;LD_LIBRARY_PATH and LD_RUN_PATH的区别;MAC

    今天配置之前项目的时候,发现有些动态链接库变了,想看看现在应用在使用哪些动态链接库的时候,进一步查了点资料; 下面针对linux动态链接库查找方法和动态链接库位置配置的过程进行记录: LIBRARY_PATH...和 LD_LIBRARY_PATH 的区别: (参考链接) LIBRARY_PATH is used by gcc before compilation to search directories...LD_LIBRARY_PATH and LD_RUN_PATH 的区别: (参考链接) LD_RUN_PATH is used for the link time resolution of libraries...可以使用上面 LD_LIBRARY_PATH 等环境变量进行配置; 2....可以使用 /etc/ld.so.conf 全局配置文件,配置动态链接库运行时的搜索路径; 然后使用ldconfig命令,进行将/etc/ld.so.conf加载到ld.so.cache之中(需要root

    1.9K10

    LD_LIBRARY_PATH详解,从此不害怕安装C语言源代码软件(欢迎海南大学的51粉丝)

    里面一般可以看到七八个已经定义好的库文件搜索路径。.../lib/:$LD_LIBRARY_PATH ¨G1G /usr/bin/ld: cannot find -llzma collect2: error: ld returned 1 exit status...=/export/apps/anaconda2/4.0.0/lib/:$LD_LIBRARY_PATH export LIBRARY_PATH=/export/apps/anaconda2/4.0.0/...lib/:$LIBRARY_PATH 为什么修改LD_LIBRARY_PATH呢 因为运行时动态库的搜索路径的先后顺序是: 1.编译目标代码时指定的动态库搜索路径; 2.环境变量LD_LIBRARY_PATH...指定的动态库搜索路径; 3.配置文件/etc/ld.so.conf中指定的动态库搜索路径; 4.默认的动态库搜索路径/lib和/usr/lib; 这个顺序是compile gcc时写在程序内的,通常软件源代码自带的动态库不会太多

    4.7K20

    linux安装多个版本的cuda和cudnn,无sudo权限安装,pip install tensorflowgpu==1.5

    cuda cuda-8.0 cuda-9.0 cuda-9.2 5.在~/.bashrc中添加/修改环境变量: export PATH=$PATH:/usr/local/cuda/bin export LD_LIBRARY_PATH...=$LD_LIBRARY_PATH:/usr/local/cuda/lib64 export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/cuda/lib64 在终端运行...可能原因,CUDA版本不对 1、查看下版本信息 cat /usr/local/cuda/version.txt 2、根据CUDA和tensorflow版本对应的关系表,检查自己的版本是否匹配 3、如果不匹配...pip install tensorflow-gpu==版本号 安装对应版本的CUDA Toolkit 9.0 4、如果匹配,仍然报错 那是因为你的cuda环境变量配置有误,请执行: export LD_LIBRARY_PATH...=$LD_LIBRARY_PATH:/usr/local/【CUDA版本】/lib64 例如 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda

    1.4K30

    gcc命令的常用选项_curl常用命令及参数

    -S 对源代码进行预处理、编译,不执行汇编、链接工作,有时我们想查看源代码的汇编代码,可以通过-S 选项实现。...这里顺便补充一下库链接时搜索路径顺序: 静态库: 1. ld会先搜索GCC命令中-L指定的目录 2. 再搜索gcc的环境变量LIBRARY_PATH 3....环境变量LD_LIBRARY_PATH指定的动态库搜索路径 3. 配置文件/etc/ld.so.conf中指定的动态库搜索路径 4. 默认的动态库搜索路径/lib 5....默认的动态库搜索路径/usr/lib 有关环境变量: LIBRARY_PATH环境变量:指定程序静态链接库文件搜索路径 LD_LIBRARY_PATH环境变量:指定程序动态链接库文件搜索路径...本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

    62240

    【ProtoBuf】2.环境配置

    配置环境变量 下载完之后将压缩包解压在某一个位置,打开解压后的文件夹: 进入bin目录,将其中的地址复制下来 搜索:“编辑系统环境变量” 并进入 点击: 接下来: 三.验证是否添加成功 打开终端...如果选择了第⼆种执⾏⽅式,即修改了安装⽬录,那么还需要在/etc/profile中添加⼀些内容: sudo vim /etc/profile # 添加内容如下: #(动态库搜索路径) 程序加载运⾏期间查找动态链接库时指定除了系统默认路径之外的其他路径...export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/protobuf/lib/ #(静态库搜索路径) 程序编译期间查找动态链接库时指定查找共享库的路径...export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/protobuf/lib/ #执⾏程序搜索路径 export PATH=$PATH:/usr/local/protobuf.../bin/ #c程序头⽂件搜索路径 export C_INCLUDE_PATH=$C_INCLUDE_PATH:/usr/local/protobuf/include/ #c++程序头⽂件搜索路径 export

    47830
    领券