Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Boost 如何添加宏';cmake中的定义是什么?_Boost_Mongodb_Cmake - Fatal编程技术网

Boost 如何添加宏';cmake中的定义是什么?

Boost 如何添加宏';cmake中的定义是什么?,boost,mongodb,cmake,Boost,Mongodb,Cmake,我使用MangoDB客户端和Boost在C++应用程序中。因为MunGDB客户端仍使用Boost旧文件系统,而我的C++应用程序使用BooSo1.47.0的文件系统版本3,它们冲突。 我找到了一种解决编译问题的方法,即在我的cpp文件中Boost头文件的所有include语句之前添加宏定义: #define BOOST_FILESYSTEM_VERSION 2 但是我想知道如何将上述宏的定义放入我的CMake项目文件中。看看,它会将您的定义添加到编译器命令行中,例如使用gcc的-D,或使用MS

我使用MangoDB客户端和Boost在C++应用程序中。因为MunGDB客户端仍使用Boost旧文件系统,而我的C++应用程序使用BooSo1.47.0的文件系统版本3,它们冲突。 我找到了一种解决编译问题的方法,即在我的cpp文件中Boost头文件的所有include语句之前添加宏定义:

#define BOOST_FILESYSTEM_VERSION 2
但是我想知道如何将上述宏的定义放入我的CMake项目文件中。

看看,它会将您的定义添加到编译器命令行中,例如使用gcc的
-D
,或使用MSVC的
/D
。尝试以下方法:

add_definitions( -DBOOST_FILESYSTEM_VERSION=2 )

在您的情况下,我肯定会使用
add_definition
方法,但可能需要另一种方法来查看。然后,您可以创建一个头文件模板,该模板将填充cmake值,并将其包含在源文件中。如果您有许多由CMake确定的可配置参数,这将非常有用。

这有助于编译一个C++0x项目,否则它将无法编译。先生,你太棒了d当该值是另一个具有双下划线的宏时,例如
\uuuuu函数\uuuuuu
,该过程应该是什么?在
ccmake
中是否有任何地方可以指定这些值?看起来此解决方案不可移植。如果我使用tird参与方编译器,它可能无法识别
-D
选项。