Jef*_*ffV 10 linker gnu-toolchain
当我将libm等库与ld链接时,我需要删除lib前缀.如果文件不遵循此命名约定怎么办?除了重命名文件之外,有没有办法链接它?
Sha*_*awn 21
您可以让链接器搜索名为不带lib前缀的库:
gcc main.o -L/path/to/foo -l:foo.a
Run Code Online (Sandbox Code Playgroud)
这在指定了库列表并且稍后会预先添加-l标志的环境中尤其有用(例如,一些makefile或eclipse CDT)
Emp*_*ian 12
您可以链接任何库,例如foo.a,通过在链接行指定它的完整路径:
gcc main.o /path/to/foo.a
Run Code Online (Sandbox Code Playgroud)
使用非标准库名称丢失的是链接器搜索它的能力,例如,这将不起作用:
gcc main.o -L/path/to foo.a
Run Code Online (Sandbox Code Playgroud)
当我将libm等库与ld链接时
注意,一般来说,你应该不带任何东西联系起来-l:foo.a.请改用编译器驱动程序 - 它将对象和库添加到正确结果所需的链接行.