我使用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确定的可配置参数,那么这将非常有用.

Mongodb相关问答推荐

MongoDB通过查找具有多个数组的对象进行聚合

Mongo DB-如果一个特定字段有多个文档匹配,则更新文档字段

MongoDB与合并对象聚合

为什么 mongoose 在 mongodb 中找不到我的数据

使用 multer 在我的 MERN 前端显示 MongoDB 图像的正确语法是什么?

嵌套数组 $unwind 和 $group 在 mongoDB 中重新组合在一起

Nestjs中不同语言数据的mongodb聚合代码

以聚合顺序使用 $$ROOT

为什么 local.oplog.rs 上每隔几分钟的活动就会锁定 mongo 客户端

在 Mongoose 中清理用户输入

如何在mongo中插入带有日期的文档?

MongoDB插入引发重复键错误

具有多个字段的mongodb文本搜索

spring-data-mongo - 可选查询参数?

将 mongodb 聚合框架结果导出到新集合

mongodb类型更改为数组

一起使用 MongoDB 和 Neo4j

Java + MongoDB:更新文档中的多个字段

如何在 NoSql 数据库(MongoDB)中强制执行外键?

MongoDB Compass timeouts超时