是否可以在 Bazel 中创建完全静态的二进制文件,或者 GCC 或 Bazel 是否存在阻止我的错误?
这是我得到的错误
/bin/ld.gold: error: /usr/lib/gcc/x86_64-linux-gnu/9/crtbeginT.o: requires dynamic R_X86_64_32 reloc against '__TMC_END__' which may overflow at runtime; recompile with -fPIC
Run Code Online (Sandbox Code Playgroud)
如果我理解正确的话,这是一个非静态链接的 libstdc++ 版本。想知道是否有一个静态链接的 libstdc++ 版本可供 Bazel 使用。
尝试在 Bazel 的存储库上查看此问题,但提到的解决方法对我不起作用
https://github.com/bazelbuild/bazel/issues/8672
3.3.1我的构建文件
cc_binary(
name = "main",
srcs = ["main.cpp"],
linkshared=True,
copts = ["-shared", "-fpic", "-fPIC"],
features = ["fully_static_link"],
)
Run Code Online (Sandbox Code Playgroud)
主程序
int main()
{
return 1;
}
Run Code Online (Sandbox Code Playgroud)
cc_binary(
name = "main",
srcs = ["main.cpp"],
linkshared=True,
linkstatic=1,
linkopts = ["-static"]
)
cc_binary(
name = "main",
srcs = ["main.cpp"],
linkshared=True,
linkstatic=1,
linkopts = ["-static"],
features = ["fully_static_link"],
copts=["-fpic"],
)
Run Code Online (Sandbox Code Playgroud)
Bazel 不会在 Ubuntu 20.04、GCC 9.3.0 中编译完全静态的二进制文件。我想了解发布的问题是否相关,或者我是否不了解静态链接的某些内容?
| 归档时间: |
|
| 查看次数: |
1831 次 |
| 最近记录: |