如何链接GCC中不以lib开头的库文件?

时间:2012-04-19 18:13:30

标签: linker gnu-toolchain

当我使用ld链接libm等库时,我需要删除lib前缀。如果文件不遵循此命名约定怎么办?除了重命名文件之外,有没有办法链接它?

2 个答案:

答案 0 :(得分:18)

可以让链接器搜索名为不带lib前缀的库:

gcc main.o -L/path/to/foo -l:foo.a

这在指定了库列表并且稍后会预先添加-l标志的环境中尤其有用(例如,一些makefile或eclipse CDT)

答案 1 :(得分:11)

您可以链接任何库,例如foo.a,通过在链接行指定它的完整路径:

gcc main.o /path/to/foo.a

使用非标准库名丢失的是链接器搜索它的能力,例如:这不起作用:

gcc main.o -L/path/to foo.a
  

当我将libm等库与ld

链接时

请注意,一般情况下,会将任何内容与ld相关联。改为使用编译器驱动程序 - 它将对象和库添加到正确结果所需的链接行。