2010-11-27 6 views
2

에게 거부 - 나는 그것이 사용되는 패키지의 독립하다고 생각하지만 -,cmake 내가 여기 프로젝트가 특정 CFLAGS

cmake -DCMAKE_C_FLAGS_RELEASE="-O2 -msse"

구성 할 때 그 정확한 플래그를 사용. 그러나 곧 나는

cmake -DCMAKE_C_FLAGS_RELEASE="-O2 -msse -fmessage-length=0"

cmake 대신 프로젝트의 기본 설정을 디폴트, 내 원하는 플래그를 고집 상태로 간다 무시하고 사용한다. 심지어 CMakeCache.txt에 반영됩니다. 그러나 무엇을해야할지 모르겠습니다.

CMakeCache.txt:CMAKE_C_FLAGS_RELEASE:STRING=-O3 -DNDEBUG 
CMakeCache.txt:CMAKE_C_FLAGS_RELEASE=-O2 -msse -fmessage-length:UNINITIALIZED=0

내 깃발을 어떻게 사용합니까?

답변

3

is a known bug in the command line parsing in CMake입니다. extra = 기호와 혼동스러워하고 변수 이름이 CMAKE_C_FLAGS_RELEASE=-O2 -msse -fmessage-length이고 값이 0이라고 생각합니다!

올바른 형식으로 캐시에서 옵션을 가져 오는 한 가지 방법은 캐시 편집기를 사용하는 것입니다. 처음 cmake를 실행 한 후, make edit_cache 다음 고급 옵션을 전환 t을 눌러 실행 CMAKE_C_FLAGS_RELEASE 옵션 아래 Ctrl 키-N원하는 값에 입력을 편집 할를 입력했다. 그 후 cg을 설정하고 Makefile을 생성하십시오.

또는 당신의 $ 편집기를 사용하여 캐시를 편집하고 올바른 라인 입력 :

CMAKE_C_FLAGS_RELEASE:STRING=-O2 -msse -fmessage-length=0 

이 매우 우아하지 않습니다,하지만 당신이 자동차 운전 얻어야한다.

2

BTW, 유형 선언은 또한 예컨대, 명령 줄에서 작동 :

cmake -DCMAKE_C_FLAGS_RELEASE:STRING="-O2 -msse -fmessage-length=0" 

작동합니다. 그래도 어색해.