大佬教程收集整理的这篇文章主要介绍了bazel build 找不到共享库,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有这个简单的目录结构:
.
├── main
│ ├── BUILD
│ └── future.cpp
└── WORKSPACE
其中BUILD文件如下:
package(default_visibility = ["//visibility:public"])
cc_binary(
name = "future",srcs = [
"future.cpp"
],copts = [
"-std=c++1z"
],linkopts = [
"-lfolly"
]
)
当我运行命令 bazel build //main:future
时,我收到以下错误消息:
INFO: Analyzed target //main:future (1 packages loaded,2 targets configured).
INFO: Found 1 target...
ERROR: /home/turtle/projects/miscellaneous/test/cpp/future/main/BUILD:3:10: linking of rule '//main:future' Failed (Exit 1): gcc Failed: error execuTing command /usr/bin/gcc @bazel-out/k8-fastbuild/bin/main/future-2.params
Use --sandBox_deBUG to see verbose messages from the sandBox gcc Failed: error execuTing command /usr/bin/gcc @bazel-out/k8-fastbuild/bin/main/future-2.params
Use --sandBox_deBUG to see verbose messages from the sandBox
/usr/bin/ld.gold: error: cAnnot find -lfolly
我确保在 libfolly.so
下有一个 /usr/local/lib
,并且我可以使用 g++ main/future.cpp -std=c++1z -lfolly -lboost_context
进行良好的编译,所以我不确定为什么会发生这个错误。有什么我在这里遗漏的吗?
默认情况下,Bazel 喜欢使用 gold linker 而不是 GNU ld。与 GNU ld 不同,gold 不会将 /usr/local/lib
放在默认库搜索路径上。这可以通过将 --linkopt=-L/usr/local/lib
传递给 Bazel 来修复。
以上是大佬教程为你收集整理的bazel build 找不到共享库全部内容,希望文章能够帮你解决bazel build 找不到共享库所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。