[英]cmake compiler boolean switch issue
I'm pretty new to cmake. 我是cmake的新手。 I'm using the following:
我正在使用以下内容:
cmake -DUSE_OLD_CODE:BOOL=FALSE
This works fine. 这很好。 But when I change the
FALSE
to TRUE
, the compiler seems to think that USE_OLD_CODE
is a file and then complains that it cannot find it. 但是,当我将
FALSE
更改为TRUE
,编译器似乎认为USE_OLD_CODE
是一个文件,然后抱怨找不到它。
Below is CMakeLists.txt 以下是CMakeLists.txt
cmake_minimum_required(VERSION 3.5.1) cmake_minimum_required(版本3.5.1)
set(CMAKE_INCLUDE_CURRENT_DIR ON) 设置(CMAKE_INCLUDE_CURRENT_DIR ON)
add_compile_options(-std=c++11 /W4 /wd"4127" /wd"4201" /MP) add_compile_options(-std = c ++ 11 / W4 / wd“ 4127” / wd“ 4201” / MP)
IF(USE_OLD_CODE) add_compile_options(/D "USE_OLD_CODE") ENDIF(USE_OLD_CODE) IF(USE_OLD_CODE)add_compile_options(/ D“ USE_OLD_CODE”)ENDIF(USE_OLD_CODE)
set( SOURCES "main.cpp" ) 设置(来源“ main.cpp”)
set (OLD_CODE_SOURCES "OldCode.cpp" ) 设置(OLD_CODE_SOURCES“ OldCode.cpp”)
set (NEW_CODE_SOURCES "NewCode.cpp" ) 设置(NEW_CODE_SOURCES“ NewCode.cpp”)
IF(USE_OLD_CODE) set (SOURCES ${SOURCES} "${OLD_CODE_SOURCES}") ELSE(USE_OLD_CODE) set (SOURCES ${SOURCES} "${NEW_CODE_SOURCES}") ENDIF(USE_OLD_CODE) IF(USE_OLD_CODE)设置(SOURCES $ {SOURCES}“ $ {OLD_CODE_SOURCES}”)ELSE(USE_OLD_CODE)设置(SOURCES $ {SOURCES}“ $ {NEW_CODE_SOURCES}”)ENDIF(USE_OLD_CODE)
IF(WIN32) add_executable(${EXECUTABLE} WIN32 ${SOURCES}) ELSEIF(UNIX) add_executable(${EXECUTABLE} ${SOURCES}) ENDIF(WIN32) IF(WIN32)add_executable($ {EXECUTABLE} WIN32 $ {SOURCES})ELSEIF(UNIX)add_executable($ {EXECUTABLE} $ {SOURCES})ENDIF(WIN32)
Any ideas what I am doing wrong? 有什么想法我做错了吗?
thanks 谢谢
james 詹姆士
要启用,您可以使用-DUSE_OLD_CODE:BOOL = ON;要禁用USE_OLD_CODE,请使用-DUSE_OLD_CODE:BOOL = OFF
shouldn't it be add_compile_options("/DUSE_OLD_CODE")
? 不应该是
add_compile_options("/DUSE_OLD_CODE")
吗?
msvc doesn't expect a space after "/D" IIRC. msvc不会在“ / D” IIRC之后出现空格。
https://msdn.microsoft.com/en-us/library/aa235412(v=vs.60).aspx https://msdn.microsoft.com/zh-CN/library/aa235412(v=vs.60).aspx
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.