Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bazel创建c++;与soname共享库 我想用Bazel创建一个共享< /St+C++库>使用 SoNAM< > /P>_C++_Shared Libraries_Bazel - Fatal编程技术网

Bazel创建c++;与soname共享库 我想用Bazel创建一个共享< /St+C++库>使用 SoNAM< > /P>

Bazel创建c++;与soname共享库 我想用Bazel创建一个共享< /St+C++库>使用 SoNAM< > /P>,c++,shared-libraries,bazel,C++,Shared Libraries,Bazel,使用cmake我可以设置如下属性: set_target_properties(my-library PROPERTIES SOVERSION 3 VERSION 3.2.0 ) 这将产生 libmy-library.so -> libmy-library.so.3 libmy-library.so.3 -> libmy-library.so.3.2.0 libmy-library.so

使用
cmake
我可以设置如下属性:

set_target_properties(my-library
        PROPERTIES
                SOVERSION 3
                VERSION 3.2.0
        )
这将产生

libmy-library.so -> libmy-library.so.3
libmy-library.so.3 -> libmy-library.so.3.2.0
libmy-library.so.3.2.0
然而,在
bazel
文档中,我找不到任何东西可以让我轻松做到这一点。我知道我可以直接定义soname和version,并在构建文件中传递一些
linkopts

cc_binary(
    name = "libmy-library.so.3.2.0",
    srcs = ["my-library.cpp", "my-library.h"],
    linkshared = 1,
    linkopts = ["-Wl,-soname,libmy-library.so.3"],
)
它确实生成了libmy library.so.3.2.0,具有正确的soname,但没有.so文件,因此需要大量的黑客来:

  • 创建libmy library.so.3符号链接
  • 创建libmy-library.so符号链接
  • 创建一些导入规则,以便我可以构建与此库链接的二进制文件
这似乎不是正确的方式。解决这个问题的正确方法是什么