对于windows,我熟悉GetFileVersionInfo
和VerQueryValue
。我正在寻找一个独立于平台的解决方案。我正在使用boost,所以最好在boost中提供一些可用于这两个平台的东西。 我读过一个类似于question,这是关注窗口。如何从应用程序中找到适用于Windows和Linux的应用程序版本
0
A
回答
4
由于您试图获取可执行文件的版本,为什么不直接添加#define
?例如:
version.h
// include guards etc.
#define MY_PROGRAM_VERSION "1.2.3"
要从CMakeLists.txt
拉版本,而不是硬编码,试试这个:
version.h.template
// include guards etc.
#define MY_PROGRAM_VERSION "${PROJECT_VERSION}"
CMakeLists.txt
cmake_minimum_required(VERSION 3.0) # Use higher if you need, lower won't work.
project(test VERSION 1.2.3) # The one and only place where you define your version!
configure_file(version.h.template version.h)
我假设你有类似的东西project(...)
线已,配置版本。其中,它设置一个名为PROJECT_VERSION
的CMake变量。
configure_file
调用需要模板,填充CMake知道的变量,并将输出写入version.h
,通常您可以将该输出写入#include
。当版本或模板更改时,CMake将重新生成该文件。
+1
因此,版本号在项目的CMAKE中设置。如何在运行期间从那里提取它? –
+0
优秀的问题,我会编辑... – Thomas
相关问题
- 1. Glade中的GUI - 适用于Linux和Windows的应用程序
- 2. 适用于Windows和Linux的应用程序开发
- 3. 适用于Windows的Python应用程序
- 4. 如何从XUL应用程序中找到Firefox版本
- 5. 如何获取Windows Phone通用应用程序的应用程序版本?
- 6. 如何找到程序集用于Windows应用程序或Windows服务
- 7. 从应用程序中获取grails应用程序版本
- 8. 禁用适用于通用Windows应用程序的应用程序大小
- 9. 独立linux版本:FeaturesAndBundlesPublisher应用程序?
- 10. 适用于Windows的风格化安装程序应用程序
- 11. 适用于Windows 8.1的安装程序商店应用程序
- 12. 使用适用于C#应用程序开发的Excel版本
- 13. Windows应用程序的品牌版本
- 14. Windows商店应用程序的版本
- 15. 适用于Windows的应用程序配置文件通用应用程序
- 16. 适用于Windows的Linux修补程序命令实用程序
- 17. 如何从VB 6应用程序中确定Windows版本?
- 18. 从iPhone版本链接到应用程序中的iPad应用程序
- 19. 微软Azure - 对于Windows应用程序和Web应用程序
- 20. 适用于移动应用程序的LightSwitch HTML应用程序
- 21. 适用于UWP应用程序的UniversalApiContract版本
- 22. 如何查找应用程序中使用的JMS版本?
- 23. 如何从mac应用程序获取其他应用程序的版本
- 24. 用于Linux和Windows应用程序的GUID,Qt
- 25. 从Windows应用商店中删除Windows 8版本的应用程序
- 26. Xcode中的通用iOs应用程序和基于Windows的应用程序
- 27. 如何同步Windows应用程序的版本和安装程序
- 28. 从控制台应用程序切换到Windows应用程序
- 29. 适用于Windows的Monobjc和Mac UI应用程序
- 30. 如何从Windows应用程序产生Linux进程?
你想获得正在运行的可执行文件的_own_版本或其他可执行文件的版本吗?因为如果你需要自己的版本,你可以为它添加一个'#define'。 – Thomas
@Thomas是的,我需要正在运行的可执行文件的版本。你可以强调什么会进入#define? –
你在问错误的问题。 **您**决定使用的版本信息,并在编译时进行设置。没有理由忘记这些信息,只是试图在运行时再次恢复它。只要使用编译时常量,无论您何时调用假设的检索函数。 – IInspectable