0

当我使用 autogen 构建共享 protobuf(版本 3.15.8)库时,我得到libprotoc.so.26

./autogen.sh
./configure --enable-shared
make

当我用 cmake 构建它时,我得到libprotobuf.so.3.15.8.0

cd cmake && mkdir build && cd build
cmake -Dprotobuf_BUILD_SHARED_LIBS=on ..
make 

有没有办法用 cmake 构建libprotoc.so.26?(我怎样才能在那里设置 SONAME?)

4

1 回答 1

1

您似乎正在寻找SOVERSION共享库目标的属性。据我所知,没有影响目标属性的命令行选项,因此您需要修改相应的CMakeLists.txt文件。您需要确定为库选择的 CMake 目标名称(项目的特征,而不是 CMake 本身的特征),例如“protobuf_lib”。然后,您将添加以下形式的命令

target_set_properties(protobuf_lib
    PROPERTIES SOVERSION 26)

或者,如果已经有target_set_properties针对相关目标的命令,您可以SOVERSION 26在该命令的属性列表中添加 。

于 2021-04-28T12:53:43.013 回答