在Bazel中使用cc_binary()创建的.so文件默认情况下是没有包含任何符号的。这是因为cc_binary()是用于创建可执行文件的规则,而不是用于创建共享库文件的规则。如果要创建包含符号的.so文件,可以使用cc_library()规则。
以下是一个示例代码,展示了如何使用cc_library()创建包含符号的.so文件:
cc_library(
name = "my_library",
srcs = ["my_library.cc"],
hdrs = ["my_library.h"],
visibility = ["//visibility:public"],
)
cc_binary(
name = "my_binary",
srcs = ["main.cc"],
deps = [":my_library"],
)
在上述示例中,使用cc_library()创建了一个名为"my_library"的共享库,其中包含了"my_library.cc"和"my_library.h"的源代码和头文件。然后,使用cc_binary()创建了一个名为"my_binary"的可执行文件,并将"my_library"作为依赖项。这将确保在构建"my_binary"时,共享库"my_library"也会被编译和链接进去。
通过这种方式,可以创建包含符号的.so文件。
下一篇:Bazel 测试卡住了