我正在尝试将 CMAKE 设置为构建系统,因此这是一个相当新的东西。发布此问题之前已经做了大量的广泛研究,但我找不到答案。我一直在寻找过去的一天,其中一些链接是here,and here和in 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属性应该注意
问题:为什么没有设置版本
答案 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