JAVA中的MDC类_CMake - 用/ MT而不是/ MD编译

我是cmake的新手(2.8.12.1),我在Windows上使用它生成项目文件,使用Visual Studio 2012构建cpp-netlib .

默认情况下,它使用/ MDd编译器开关进行编译 . 我想改变它,以便它使用/ MTd .

具体来说,我在if语句中添加了下面显示的第二行到CmakeLists.txt .

if (MSVC)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /bigobj")

set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MTd")

endif()

当我打开Visual Studio sln文件时,我可以看到仍然设置了/ MDd选项 . 此外,我在CMakeCache.txt中看到以下内容:

//Flags used by the compiler during debug builds.

CMAKE_CXX_FLAGS_DEBUG:STRING=/D_DEBUG /MDd /Zi /Ob0 /Od /RTC1

我也尝试过像这样设置标志:

set(CMAKE_CXX_FLAGS_DEBUG "/MTd")

但这也不起作用 .

如果我通过命令行传递选项,如下所示:

-DCMAKE_CXX_FLAGS_DEBUG="/MTd"

该选项已在Visual Studio项目中成功设置 .

谁能告诉我我做错了什么?

如果有人可以告诉我缓存中的值来自于我未在命令行中指定或不在CmakeLists.txt中的位置,我也将不胜感激 .

根据请求添加CMakeList.txt . 如果我没有做到这一点,我从来没有发布过这样的道歉 .

# Original from cpp-netlib.org with my edits

cmake_minimum_required(VERSION 2.8)

project(CPP-NETLIB)

set(Boost_USE_STATIC_LIBS ON)

set(Boost_USE_MULTI_THREADED ON)

find_package( Boost 1.45.0 REQUIRED unit_test_framework system regex date_time thread filesystem program_options chrono )

find_package( OpenSSL )

find_package( Threads )

set(CMAKE_VERBOSE_MAKEFILE true)

if (CMAKE_BUILD_TYPE MATCHES Debug)

add_definitions(-DBOOST_NETWORK_DEBUG)

endif()

if (OPENSSL_FOUND)

add_definitions(-DBOOST_NETWORK_ENABLE_HTTPS)

include_directories(${OPENSSL_INCLUDE_DIR})

endif()

if (${CMAKE_CXX_COMPILER_ID} MATCHES GNU)

set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall")

endif()

if (Boost_FOUND)

################# added #################

add_definitions(-DBOOST_ALL_NO_LIB)

#########################################

if (MSVC)

add_definitions(-D_SCL_SECURE_NO_WARNINGS)

endif(MSVC)

if (WIN32)

add_definitions(-D_WIN32_WINNT=0x0501)

endif(WIN32)

include_directories(${Boost_INCLUDE_DIRS})

enable_testing()

add_subdirectory(libs/network/src)

add_subdirectory(libs/network/test)

if (NOT MSVC)

add_subdirectory(libs/mime/test)

endif(NOT MSVC)

add_subdirectory(libs/network/example)

endif(Boost_FOUND)

if (MSVC)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /bigobj")

################# added #################

set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MTd")

#########################################

endif()

enable_testing()

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值