cmake 添加宏_如何添加在cmake的宏的定义是什么?

I am using Mongodb client and Boost in my C++ application. Because the Mongodb client is still using Boost old filesystem and my C++ application is using filesystem version 3 from boost 1.47.0, they conflict.

I found a way to solve this compilation problem, namely add a macro definition before all include statements for the header files from Boost in my cpp files:

#define BOOST_FILESYSTEM_VERSION 2

But I want to know how to put the above macro's definition into my CMake project files.

解决方案

Take a look at add_definitions, which will add your definitions to your compiler command line, e.g. -D with gcc, or /D with MSVC. Try something like:

add_definitions( -DBOOST_FILESYSTEM_VERSION=2 )

In your case, I would definitely go with the add_definition method, but an alternative may to take a look at configure_file. Then you can create a header-file template, which will be filled with cmake-values and include this in your source files. This can be useful if you have many, many configurable parameters which are determined by CMake.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值