【发布时间】:2011-12-15 14:02:59
【问题描述】:
我想将我的库的版本号存储在一个地方。所以我在 CMake 文件中定义了这样一个变量:
SET(LIBINTERFACE_VERSION 1 CACHE INTEGER "Version of libInterface")
有了这个定义,我可以根据微软的定义生成一个 version.rc 文件,我将它编译到库中,然后在我的 dll 文件的属性窗口中正确显示。
现在我也想在我的 c++ 源代码中使用这个 CMake 变量,但实际上我没有找到可行的解决方案。我尝试过类似这样的不同方法:
#ifndef VERSION_LIBINTERFACE
# define VERSION_LIBINTERFACE @LIBINTERFACE_VERSION@
#endif
或者这个:
unsigned int getLibInterfaceVersion()
{
return @LIBINTERFACE_VERSION@;
}
但是编译器不会接受任何东西。由于我在 CMake-Documentation 中的研究没有得到任何结果,希望有人能给我一些重要的建议。
提前致谢。
【问题讨论】:
-
您需要将此变量值作为预编译器常量传递给编译器。确切的语法取决于使用的编译器。
-
我正在使用 Visual Studio 2010 编译器。所以我可以像msdn.microsoft.com/en-us/library/b0084kay(v=vs.80).aspx 中列出的常量一样使用它?可以举个例子吗?
标签: c++ makefile cmake header-files