从静态 C 库的源代码中提取函数定义以避免库编译
Pulling Function definitions out of a static C library's source code to avoid library compilation
我有一个程序使用了一个巨大的库,称之为libhuge(编译需要很长时间)。我的 Makefile 首先编译 libhuge 并存档。然后将我的程序源代码编译成目标文件
gcc -c $CFLAGS $OBJS
然后将它们全部链接到 libhuge.a
。我尝试在不链接到该库的情况下进行编译,发现很少(12 个函数)缺少定义。是否可以从我的 libhuge
中自动提取这些定义,并只编译目标文件中的那些函数,这样我就不必编译整个库?
这么说吧!我有一些功能想从库中进一步研究。我如何找到它们的定义?
在您的 Makefile 中添加一个规则来检查 libhuge.a,只有当它不存在时才构建 libhuge.a 库:
<path>/libhuge.a:
<commands to build libhuge.a>
<your program>: <path>/libhuge.a
<commands to build your code>
第一次libhuge.a不存在时,会构建整个libhuge.a。但是一旦库存在,它就不会再构建它了。
我有一个程序使用了一个巨大的库,称之为libhuge(编译需要很长时间)。我的 Makefile 首先编译 libhuge 并存档。然后将我的程序源代码编译成目标文件
gcc -c $CFLAGS $OBJS
然后将它们全部链接到 libhuge.a
。我尝试在不链接到该库的情况下进行编译,发现很少(12 个函数)缺少定义。是否可以从我的 libhuge
中自动提取这些定义,并只编译目标文件中的那些函数,这样我就不必编译整个库?
这么说吧!我有一些功能想从库中进一步研究。我如何找到它们的定义?
在您的 Makefile 中添加一个规则来检查 libhuge.a,只有当它不存在时才构建 libhuge.a 库:
<path>/libhuge.a:
<commands to build libhuge.a>
<your program>: <path>/libhuge.a
<commands to build your code>
第一次libhuge.a不存在时,会构建整个libhuge.a。但是一旦库存在,它就不会再构建它了。