当我在使用ld链接库如libm中,我需要删除的lib前缀。 如果该文件不遵循什么命名约定? 有没有一种方法比重命名文件挂靠其他?
Answer 1:
您可以链接反对任何库,如foo.a
,通过指定完整路径上的链接线:
gcc main.o /path/to/foo.a
你失去与非标准库的名称为寻找它的能力,为连接基,如这是不行的:
gcc main.o -L/path/to foo.a
当我在使用ld链接库等的libm
需要注意的是,一般你不应该有任何联系ld
。 使用编译器驱动程序,而不是 - 它增加了对象和库所需要的正确结果的链接线。
Answer 2:
你可以有一个不用的lib前缀命名的图书馆链接搜索:
gcc main.o -L/path/to/foo -l:foo.a
其中指定的库的列表,并-l标志稍后前置这是在环境中尤其有用(例如,一些生成文件或蚀CDT)
文章来源: How do I link a library file in GCC that does not start with lib?