如何使用支持PIC的静态库构建静态链接的应用程序

时间:2012-06-07 07:13:03

标签: unix libraries

我有一个静态链接的应用程序(sample.a),我想用一个支持PIC的第三方库(第三方-lib.a)构建它。请注意,第三方库不是共享库。它是一个支持PIC的静态库。

任何人都可以建议我该怎么做?

我尝试将我的库与第三方库链接,就像我们通常链接静态库一样,但它给了我一个错误:

/usr/lib/libc_nonshared.a(stack_chk_fail_local.oS):在函数__stack_chk_fail_local': (.text+0x10): undefined reference to __ stack_chk_fail'

提前致谢。

1 个答案:

答案 0 :(得分:0)

我建议使用 nm 来尝试查找所涉及的符号。好主意也是检查是否有任何#define你需要照顾或类似。就其自身而言,只要您使用-fPIC编译程序的其余部分,启用PIC的静态库不应更改链接中的任何内容。

总而言之,我似乎并不喜欢PIC设置引起的事情。您是否有机会使用动态库构建以前的代码,现在才切换到静态?这可以解释为什么缺少一些配置,包括其他内容。