我有一个静态链接的应用程序(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'
提前致谢。
答案 0 :(得分:0)
我建议使用 nm 来尝试查找所涉及的符号。好主意也是检查是否有任何#define你需要照顾或类似。就其自身而言,只要您使用-fPIC编译程序的其余部分,启用PIC的静态库不应更改链接中的任何内容。
总而言之,我似乎并不喜欢PIC设置引起的事情。您是否有机会使用动态库构建以前的代码,现在才切换到静态?这可以解释为什么缺少一些配置,包括其他内容。