【发布时间】:2017-12-15 11:09:30
【问题描述】:
-- 问题解决了--
这个问题解决了。感谢大家的帮助!
问题及原因简述如下,供以后的读者参考:
[环境]
Ubuntu 14.04、Bazel、C++
[问题]
我想包含一个外部库。所以我下载了源文件并将其作为静态库.a。
我正确设置了BUILD、WORKSPACE和相关文件。但是,编译时,它会提示错误:
Linking of rule '//main' failed (Exit 1)
main: error: undefined reference to 'void ex_lib::compute(double*, double const*, double const*)'
collect2: error: ld returned 1 exit status
我在这里尝试了 .lo 和 alwayslink 方法,但不起作用。
Alternate to "`--whole-archive`" in bazel
[原因]
这是因为外部库源文件包含重复的头文件。所以我修复了头文件问题。再次制作.a。然后一切正常。
所以 bazel 没什么问题。导致问题的是图书馆本身。但是错误信息比较混乱,我认为是bazel引起的。
【问题讨论】:
标签: include static-libraries bazel