我使用MangGDB客户端和Boost在我的C++应用程序中.因为MunGDB客户端仍使用Boost旧文件系统,而我的C++应用程序使用BooSo1.47.0的文件系统版本3,它们冲突.
我找到了一种解决编译问题的方法,即在我的cpp文件中Boost头文件的所有include语句之前添加宏定义:
#define BOOST_FILESYSTEM_VERSION 2
但我想知道如何将上述宏的定义放入我的CMake项目文件中.
我使用MangGDB客户端和Boost在我的C++应用程序中.因为MunGDB客户端仍使用Boost旧文件系统,而我的C++应用程序使用BooSo1.47.0的文件系统版本3,它们冲突.
我找到了一种解决编译问题的方法,即在我的cpp文件中Boost头文件的所有include语句之前添加宏定义:
#define BOOST_FILESYSTEM_VERSION 2
但我想知道如何将上述宏的定义放入我的CMake项目文件中.
看看add_definitions,它将把你的定义添加到你的编译器命令行中,例如-D
和gcc,或者/D
和MSVC.试试这样:
add_definitions( -DBOOST_FILESYSTEM_VERSION=2 )
在你的情况下,我肯定会 Select add_definition
方法,但另一种方法可能是看configure_file.然后,您可以创建一个头文件模板,其中将填充cmake值,并将其包含在源文件中.如果您有许多由CMake确定的可配置参数,那么这将非常有用.