社区
C语言
帖子详情
LD_LIBRARY_PATH环境变量 与-L
solookin
2010-03-30 10:32:43
问一个问题(gcc):
LD_LIBRARY_PATH环境变量 和 编译时使用-L参数是不是等价的?
我觉得都是指定库的路径。
它们之间有区别吗?谢谢
...全文
715
11
打赏
收藏
LD_LIBRARY_PATH环境变量 与-L
问一个问题(gcc): LD_LIBRARY_PATH环境变量 和 编译时使用-L参数是不是等价的? 我觉得都是指定库的路径。 它们之间有区别吗?谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
solookin
2010-03-30
打赏
举报
回复
OK,结贴了
pengxn
2010-03-30
打赏
举报
回复
[Quote=引用 9 楼 solookin 的回复:]
引用 8 楼 pengxn 的回复:
要明白,编译和链接是2回事
LD_LIBRARY_PATH链接时使用
-L编译时使用,分开了解
据我所知,-L是链接时使用。
而上面有人说LD_LIBRARY_PATH是运行时使用。
你却说LD_LIBRARY_PATH是链接时使用。。。
[/Quote]对,打错字了。LD_LIBRARY_PATH是运行时使用
solookin
2010-03-30
打赏
举报
回复
[Quote=引用 8 楼 pengxn 的回复:]
要明白,编译和链接是2回事
LD_LIBRARY_PATH链接时使用
-L编译时使用,分开了解
[/Quote]
据我所知,-L是链接时使用。
而上面有人说LD_LIBRARY_PATH是运行时使用。
你却说LD_LIBRARY_PATH是链接时使用。。。
pengxn
2010-03-30
打赏
举报
回复
[Quote=引用 7 楼 solookin 的回复:]
那就是LD_LIBRARY_PATH与编译没有关系呗?
还有一个问题,就是ld这个连接程序的名字是哪个英文的缩写?想也想不出来。
解决了就给结贴了。。。。
[/Quote]
要明白,编译和链接是2回事
LD_LIBRARY_PATH链接时使用
-L编译时使用,分开了解
solookin
2010-03-30
打赏
举报
回复
那就是LD_LIBRARY_PATH与编译没有关系呗?
还有一个问题,就是ld这个连接程序的名字是哪个英文的缩写?想也想不出来。
解决了就给结贴了。。。。
solookin
2010-03-30
打赏
举报
回复
[Quote=引用 1 楼 pengxn 的回复:]
:Linux系统中,通常变量 LD_LIBRARY_PATH就是能用来指定函数库查找路径的,而且这个路径通常是在查找标准的路径之前查找。
[/Quote]
-L也有这个功能,谢谢
FancyMouse
2010-03-30
打赏
举报
回复
LD_LIBRARY_PATH还提供运行时链接库的候选路径。这个和编译完全没关系。
pengxn
2010-03-30
打赏
举报
回复
分数不给我就太坏了
yanran_hill
2010-03-30
打赏
举报
回复
不一样,
LD_LIBRARY_PATH是环境变量,用于程序运行时,搜索.so的路径
而-L,是编译时查找.o或者.so文件所在的目录,用于连接生成可执行文件
pengxn
2010-03-30
打赏
举报
回复
指定完整的绝对路径
$ cc -o a.out main.c /prod/lib/libabc.a
指定相对路径
$ cc -o a.out main.c ../../prod/lib/libabc.a
指定当前目录下的库
$ ls main.c libabc.a
libabc.a main.c
$ cc -o a.out main.c libabc.a
指定库文件名和搜索路径
$ cc -o a.out main.c -L/prod/lib –labc
后面2种编译出来的程序,可以在任意目录下执行
注意当使用-bnoipath时,不会执行文件的头区保存路径信息。
头区保存路径信息,会影响执行时候,库的搜索路径。对于编译期路径的指定和执行期路径的搜索是2个不同的概念,注意不要混淆。
pengxn
2010-03-30
打赏
举报
回复
不是的
:Linux系统中,通常变量 LD_LIBRARY_PATH就是能用来指定函数库查找路径的,而且这个路径通常是在查找标准的路径之前查找。这个是非常有用的,特别是在调试一个新的函数库的时候,或在特别的场合使用一个非标准的函数库的时候。环境变量LD_PRELOAD列出了所有共享函数库中需要优先加载的库文件,功能和 /etc/ld.so.preload类似。这些都是有/lib/ld-linux.so这个loader来实现的。值得一提的是, LD_LIBRARY_PATH能在大部分的UNIX-linke系统下正常起作用,不过并非所有的系统下都能使用,例如HP-UX系统下,就是用 SHLIB_PATH这个变量,而在AIX下则使用LIBPATH这个变量。
LD
_
LIBRARY
_
PATH
与-L的关系以及延伸
本文深入探讨了C++项目中g++-L参数与
LD
_
LIBRARY
_
PATH
环境变量
的区别与联系。通过实例说明,-L参数用于编译时指定库文件位置,而
LD
_
LIBRARY
_
PATH
则影响运行时动态链接库的搜索路径。文章还强调了两者在库查找时机上的不同,并指出设置
LD
_
LIBRARY
_
PATH
可能带来的副作用。
LIBRARY
_
PATH
和
LD
_
LIBRARY
_
PATH
环境变量
的区别
本文介绍了Linux环境下
LIBRARY
_
PATH
和
LD
_
LIBRARY
_
PATH
环境变量
的区别及用途,同时解释了GCC中的-L、-r
path
-link和-r
path
链接选项的作用。
GCC/G++编译器中指定库文件(LIB)、头文件(INCLUDE)
本文详细解析Linux系统中库文件的搜索路径设置方法,包括
环境变量
如
LIBRARY
_
PATH
、
LD
_
LIBRARY
_
PATH
的配置,/etc/
ld
.so.conf文件的修改及
ld
config命令的使用,以及gcc/g++编译参数-L、-l、-I的应用。适用于静态库和共享库的连接与运行。
编译时的-L选项是否影响
LD
_
LIBRARY
_
PATH
的值?
本文通过一个实例探讨了使用GCC编译器时遇到的问题:在编译阶段正确链接了库文件,但在运行时却无法找到这些库。文章解释了-L选项的作用范围及其与
环境变量
LD
_
LIBRARY
_
PATH
的关系。
Ubuntu/CentOS设置
LD
_
LIBRARY
_
PATH
环境变量
免安装使用动态库
本文介绍了如何在Ubuntu/CentOS中设置
LD
_
LIBRARY
_
PATH
环境变量
,以便在不安装的情况下使用动态库。当Linux程序找不到依赖的动态库时,可以通过修改.bashrc文件添加库路径来解决问题。同时,解释了VS2019/VS2022远程编译时设置链接依赖库的方法,包括-L和-r
path
/r
path
-link选项的用途和区别。设置-L仅影响编译,运行时仍需
LD
_
LIBRARY
_
PATH
。-r
path
和-r
path
-link则能在运行时指定库路径,其中-r
path
将路径写入可执行文件,更利于部署。
C语言
70,038
社区成员
243,247
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章