我正在使用 gcc 编译一个程序,我需要链接到一个非标准名称的 C 库;它被称为 stuff.a
而不是 libstuff.a
。
我无法更改文件名(权限问题)。
我不想包含完整的库(即使用 gcc program.c stuff.a -oprogram
)
我想编译为 gcc program.c -L/path/to/library/-lstuff -oprogram
但 gcc 找不到库(因为它不叫 libstuff.一个
).
我正在开发 Linux 机器。
如何完成(动态)链接?
编辑:
谢谢大家,对于一个措辞不佳的问题,我深表歉意。
我什至没有共享对象(我想我可以动态链接到一个 *.a 文件),所以这让你们中的许多人感到困惑。再次为我的无知道歉。
我最后做的是在本地目录中创建共享对象,将位置附加到我的 LD_LIBRARY_PATH 环境变量,然后再次链接。
它就像一个魅力(从 1.3M 可执行文件减少到 5.8K)。
再次感谢。
最佳答案
你应该看看 gcc manual :
The only difference between using an -l option and specifying a file name is that
-l
surrounds library with 'lib' and '.a' and searches several directories.
使用 stuff.a
作为参数没有错。
关于c - 使用非标准名称链接 C 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2112055/