社区
C语言
帖子详情
LD_LIBRARY_PATH环境变量 与-L
solookin
2010-03-30 10:32:43
问一个问题(gcc):
LD_LIBRARY_PATH环境变量 和 编译时使用-L参数是不是等价的?
我觉得都是指定库的路径。
它们之间有区别吗?谢谢
...全文
555
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这个变量。
三菱Q系PLC零基础培训
课程基于三菱Q系列PLC,按照顺序来依次介绍QCPU的各项功能及如何使用指令,PLC编程的语言可能都会兼顾,初期基础篇以
LD
梯形图为主,后面实战篇介绍SFC、FBD、ST等其他形式。该基础篇同样会介绍HMI触摸屏,以国产威伦及三菱GT为例。
Linux下的
LD
_
LIBRARY
_
PATH
环境变量
的设置
在linux下的
LD
_
LIBRARY
_
PATH
环境变量
是基于shell的,只有在当前设置了的shell里才会有作用,在~/目录下打开.bashrc文件,设置
环境变量
LD
_
LIBRARY
_
PATH
后,会一直起作用,打开新的shell不用每次都设置
LD
_
LIBRARY
_
PATH
环境变量
了。设置代码如下:
LD
_
LIBRARY
_
PATH
=dir:$
LD
_
LIBRARY
_
PATH
export
LD
_
LIBRARY
_
PATH
LD
_
LIBRARY
_
PATH
环境变量
是对linux共享库位置进行配置。 ..
LD
_
LIBRARY
_
PATH
详解
LD
_
LIBRARY
_
PATH
详解
LD
_
LIBRARY
_
PATH
是Linux
环境变量
名,该
环境变量
主要用于指定查找共享库(动态链接库)时除了默认路径之外的其他路径。 非常多的软件没有root权限安装会比较困难,主要就是因为各种系统库文件,也就是
LD
_
LIBRARY
_
PATH
这个
环境变量
里面的文件。比如前面我提到的lancet软件需要的库文件如下: -llzma -lbz2 -lz -
ld
l -lpthread -lcurl -lcrypto -lbamtools 可以使用 ls /usr/lib |gr
LD
_
LIBRARY
_
PATH
环境变量
的设置
LD
_
LIBRARY
_
PATH
环境变量
的设置 在linux下的编程,毫无疑问的迟早都要用到
LD
_
LIBRARY
_
PATH
这个
环境变量
,不过这个
环境变量
是基于shell的,也就是说只有在当前设置了的shell里才会有作用,因此每次打开新的shell运行程序不停地设置
LD
_
LIBRARY
_
PATH
,是一件非常麻烦的事情,所以我们就会想有不有什么一劳永逸地方法,使得设置之后就不用再去设置了
linux
环境变量
LIBRARY
_
PATH
和
LD
_
LIBRARY
_
PATH
文章目录1.
LIBRARY
_
PATH
和
LD
_
LIBRARY
_
PATH
区别1.1.两个
环境变量
的不同1.2.使用场景2.配合CMake实验测试2.0.文件结构2.1.测试1:
LIBRARY
_
PATH
包含库目录,
LD
_
LIBRARY
_
PATH
不包含2.2.测试2:
LIBRARY
_
PATH
不包含库目录,
LD
_
LIBRARY
_
PATH
包含库目录2.3.测试3:
LIBRARY
_
PATH
包含库目录,
LD
_
LIBRARY
_
PATH
包含库目录2.4.测试4:和
LD
_
LIBRARY
_
PATH
同等作用的/etc/
ld
.so.c
C语言
69,369
社区成员
243,082
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章