2017-09-21 118 views
0

我是cmake的新手。我正在使用以下:cmake編譯器布爾開關問題

cmake -DUSE_OLD_CODE:BOOL=FALSE 

這工作正常。但是,當我將FALSE更改爲TRUE時,編譯器似乎認爲USE_OLD_CODE是一個文件,然後抱怨它找不到它。

下面是的CMakeLists.txt

cmake_minimum_required(VERSION 3.5.1)

集(CMAKE_INCLUDE_CURRENT_DIR ON)

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)

集(SOURCES 「的main.cpp」 )

集(OLD_CODE_SOURCES 「OldCode.cpp」 )

集(NEW_CODE_SOURCES 「NewCode.cpp」 )

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)

任何想法我我做錯了嗎?

感謝

詹姆斯

+0

你的意思是你改變了'FALSE'部分TRUE;或'BOOL'部分TRUE;? – Simple

+1

可能是https://stackoverflow.com/a/10364240/1597714 – AMA

+0

的副本我將FALSE部分設置爲TRUE。上面編輯。謝謝。 – GUIDeveloper

回答

0

爲了使您可以使用-DUSE_OLD_CODE:BOOL = ON 並禁用USE_OLD_CODE使用-DUSE_OLD_CODE:BOOL = OFF

+0

開/關根本不起作用。 – GUIDeveloper