为什么Cmake没有设置版本?

时间:2019-01-16 15:38:52

标签: cmake

我正在尝试将 CMAKE 设置为构建系统,因此这是一个相当新的东西。发布此问题之前已经做了大量的广泛研究,但我找不到答案。我一直在寻找过去的一天,其中一些链接是hereand herein the official documentation,但我不明白自己在做什么错。

问题:我正在尝试使用cmake构建动态库,但未设置版本。

这是我的文件夹结构,是使用“ ”命令生成的。 (我已从构建目录中取出内容,因此易于阅读)

copy=False

这是我的 CMakeLists.txt

.
├── build
├── CMakeLists.txt
├── test_utility.cpp
└── test_utility.h

然后我进入构建目录并运行 cmake .. -G“ Unix Makefiles” cmake --build。。除了一件事,一切都很好完成: 这样的结果是 libtest_utility.so ,而我本来想 libtest_utility.so.0.1 ,然后我自己做符号链接。

我了解here的工作环境解决方案,该解决方案告诉您使用 VERSION_MAJOR 0和 VERSION_MINOR 1,但是我认为项目中的Version属性应该注意

问题:为什么没有设置版本

2 个答案:

答案 0 :(得分:0)

project() VERSION 参数设置的

项目版本仅表示项目版本,而不表示其生成的库版本。

对于库的设置版本,您需要设置库 target VERSION 属性

set_target_properties(test_utility PROPERTIES VERSION "0.1")

答案 1 :(得分:0)

如果设置了项目的版本,则可以将该值重新用于已构建的目标。只需阅读项目版本,而不是重复值

设置项目的版本:

WebRequestInterceptorModule.forRoot()

使用project(TestLib VERSION 0.1 DESCRIPTION "Testing the library target utility in Cmake" LANGUAGES CXX)

的值
PROJECT_VERSION