首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

bazel cc_binary()创建没有任何符号的.so文件?

bazel cc_binary()创建没有任何符号的.so文件是因为在构建过程中缺少了链接器的选项。链接器负责将目标文件中的符号解析为最终的可执行文件或共享库。在使用bazel的cc_binary()规则时,需要确保在BUILD文件中正确设置了链接器选项。

要创建一个具有符号的.so文件,可以在BUILD文件中使用cc_library()规则来定义一个共享库目标,并将其链接到cc_binary()规则中。cc_library()规则将源文件编译为目标文件,并生成具有符号的共享库文件。

以下是一个示例的BUILD文件:

代码语言:txt
复制
cc_library(
    name = "my_library",
    srcs = ["my_source_file.cc"],
    hdrs = ["my_header_file.h"],
    visibility = ["//visibility:public"],
)

cc_binary(
    name = "my_binary",
    srcs = ["main.cc"],
    deps = [":my_library"],
)

在这个示例中,cc_library()规则定义了一个名为my_library的共享库目标,它包含了my_source_file.cc和my_header_file.h。cc_binary()规则定义了一个名为my_binary的可执行文件目标,它依赖于my_library共享库。

通过这样的设置,bazel将会正确地链接共享库中的符号,从而创建一个具有符号的.so文件。

推荐的腾讯云相关产品:腾讯云云服务器(CVM)和腾讯云容器服务(TKE)。

  • 腾讯云云服务器(CVM):提供高性能、可扩展的云服务器实例,适用于各种计算场景。详情请参考:腾讯云云服务器
  • 腾讯云容器服务(TKE):基于Kubernetes的容器管理服务,提供高可用、弹性伸缩的容器集群。详情请参考:腾讯云容器服务
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

共17个视频
动力节点-JDK动态代理(AOP)使用及实现原理分析
动力节点Java培训
动态代理是使用jdk的反射机制,创建对象的能力, 创建的是代理类的对象。 而不用你创建类文件。不用写java文件。 动态:在程序执行时,调用jdk提供的方法才能创建代理类的对象。jdk动态代理,必须有接口,目标类必须实现接口, 没有接口时,需要使用cglib动态代理。 动态代理可以在不改变原来目标方法功能的前提下, 可以在代理中增强自己的功能代码。
领券