当我用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?(
您似乎正在查找共享库目标的SOVERSION
属性。据我所知,没有命令行选项可以影响目标属性,因此您需要修改相应的CMakeLists.txt
文件。您需要确定为库选择的CMake目标名称(这是项目的特征,而不是CMake本身的特征(,比如";protobuf_lib";。然后添加形式的命令
target_set_properties(protobuf_lib
PROPERTIES SOVERSION 26)
或者,如果有问题的目标已经有target_set_properties
命令,则可以将SOVERSION 26
添加到该命令的属性列表中。