如何在大多数静态模式(linkstatic = 1)中静态链接系统库?我试图使用"-Wl,-Bstatic -lboost_thread -Wl,-Bdynamic"或"-Wl,-Bstatic"," - lboost_thread"," - WI,-Bdynamic",但它们都没有奏效.我不想在系统中硬编码libboost_thread.a的路径.
cc_binary(
name = "main",
srcs = [
"main.cpp",
],
linkopts = [
"-lboost_thread",
],
)
Run Code Online (Sandbox Code Playgroud)
boost_thread库作为动态库链接.
ldd bazel-bin/main
linux-vdso.so.1
libboost_thread.so.1.54.0 => /usr/lib/x86_64-linux-gnu/libboost_thread.so.1.54.0
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6
...
Run Code Online (Sandbox Code Playgroud)
小智 5
在您的WORKSPACE文件中定义一个外部存储库...
new_local_repository(
name = "boost_thread",
path = "/usr/lib/x86_64-linux-gnu",
build_file = "boost_thread.BUILD"
)
Run Code Online (Sandbox Code Playgroud)
创建一个boost_thread.BUILD文件
cc_library(
name = "lib",
srcs = ["libboost_thread.a"],
visibility = ["//visibility:public"],
)
Run Code Online (Sandbox Code Playgroud)
然后在您的cc_binary规则中添加
deps = ["@boost_thread//:lib",],
Run Code Online (Sandbox Code Playgroud)
然后扔一个
linkstatic = 1
Run Code Online (Sandbox Code Playgroud)
为了安全起见。
| 归档时间: |
|
| 查看次数: |
3788 次 |
| 最近记录: |