linux编译l和l区别,linux – 在makefile中的-I和-L有什么区别?

这些通常是链接器命令行的一部分,并且直接在目标操作中提供,或者更常见地分配给将被扩展以形成链接命令的make变量。在这种情况下:

-L是包含库的目录的路径。库的搜索路径。

-l是要链接到的库的名称。

例如,如果你想链接到库〜/ libs / libabc.a,你可以添加:

-L$(HOME)/libs -labc

要利用默认隐式规则进行链接,请将这些标志添加到变量LDFLAGS,如

LDFLAGS+=-L$(HOME)/libs -labc

例如,分离LDFLAGS和LIBS是一个好习惯

# LDFLAGS contains flags passed to the compiler for use during linking

LDFLAGS = -Wl,--hash-style=both

# LIBS contains libraries to link with

LIBS = -L$(HOME)/libs -labc

program: a.o b.o c.o

$(CC) $(LDFLAGS) $^ $(LIBS) -o $@

# or if you really want to call ld directly,

# $(LD) $(LDFLAGS:-Wl,%=%) $^ $(LIBS) -o $@

即使它可能工作否则,-l …指令应该追溯引用这些符号的对象。一些优化(-Wl, – 根据需要是最明显的)将失败,如果链接以错误的顺序完成。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值