从Windows静态库中删除一些公共符号

时间:2012-10-17 20:31:14

标签: windows static-libraries

我们希望生成仅具有已记录的API函数的公共符号的Windows静态库。我们想要删除所有其他符号。

对于* NIX库来说这很容易;您可以使用strip(1)实用程序并指定--keep-symbol=foo,甚至可以将整个符号列表放入文件中并指定文件。

我们如何为Windows库执行此操作?

更多细节:假设我们正在创建一个库,它是由多个.C文件构建的。

util.c定义了函数util_foo()util_bar()math.c定义some_math_func()。然后lib.c定义了函数api_func_0()api_func_1()。 API函数调用实用程序和数学函数,因此不能将这些函数声明为static。当我们编译每个.c文件时,公共符号在目标文件中,然后当我们链接目标文件以创建库时,链接器将使所有公共符号可见。链接器生成静态库后,我们只希望符号api_func_0api_func_1可见。

0 个答案:

没有答案