如何与现有自动制作项目中的静态库链接

Posted

技术标签:

【中文标题】如何与现有自动制作项目中的静态库链接【英文标题】:how to link with a static library in an existing auto make project 【发布时间】:2013-12-05 10:50:48 【问题描述】:

我有一个静态库(.a 文件),我可以在 Linux 上使用以下命令行很好地与主程序链接,方法是将 .a 放在当前文件夹中并使用带有“”的包含来首选当前文件夹图书馆位置。

gcc userfile.c -L. -lnameoflib

但是,我需要将此预构建库集成到自动生成文件项目中。我尝试将 userfile.c 添加到 Makefile.am 中的源文件列表中。但是,运行 make 时,找不到从静态库调用的函数的引用,即 .a

经过一些调查,它似乎 试图创建一个名为 name.a 的库,因为该库已经存在,我只希望脚本使用它

make 文件项目是一个现有的知名开源项目,具有标准的引导、配置、制作和制作安装步骤。

非常感谢任何帮助。

【问题讨论】:

如果您不希望这个.a 由现有的makefile 构建,只需将LDADD = ./libsomething.a 添加到Makefile.am 并重新运行automake && configure。 非常感谢。这有助于解决一个问题。我会回来尝试后者。 【参考方案1】:

如果您不希望这个 .a 由现有的 makefile 构建,只需将 LDADD = ./libsomething.a 添加到 Makefile.am 并重新运行 automake && configure。 – 凯尔塔

【讨论】:

以上是关于如何与现有自动制作项目中的静态库链接的主要内容,如果未能解决你的问题,请参考以下文章

iOS 中的静态库与动态库,区别制作和使用

与 Qt 项目的静态链接

Visual Studio 2010 不会自动链接来自依赖项的项目中的静态库,因为它应该是

Xcode4 从现有项目创建静态库

Linux库函数制作(静态库动态库)

Linux_动态库与静态库(制作与安装)