2016-12-14 5 views
2

Отказ от ответственности: Я знаю this Вопрос. Тем не менее, потребности OP отличаются от моих: то, что он на самом деле хочет, - это переносить приложение в Linux, и поэтому ответы идут в этой строке, а не на то, что я хочу знать: причины ошибки.CMake - set_property не удалось найти переменную CACHE


Я пытаюсь создать выпадающий список в CMake GUI, следуя инструкциям в here и here

Так что у меня это очень простой CMakeLists.txt:

cmake_minimum_required(VERSION 3.6) 

project(datasetprograms) 

set(CMAKE_CXX_STANDARD 11) 

#LINES TO MAKE THE GUI DROP-DOWN: 
set(TARGET_ARCHITECTURE “arm” CACHE STRING “Architecture to compile to”) 
set_property(CACHE TARGET_ARCHITECTURE PROPERTY STRINGS arm x86) 

#Add subdirectories for each project 
add_subdirectory(helloworld) 

В основном я просто копируются и вставляются в соответствии с инструкциями. Однако, вместо того, чтобы иметь хороший раскрывающийся в CMake GUI, я получил следующее сообщение об ошибке:

CMake Error at CMakeLists.txt:9 (set_property): set_property could not find CACHE variable TARGET_ARCHITECTURE. Perhaps it has not yet been created

Вопрос: Что я делаю неправильно?

+1

Это цитата .. вы пробовали вместо обычных ('' ')? – Tsyvarev

+0

Мужчина!: DI только что понял, вернитесь, чтобы ответить на мой собственный вопрос и посмотреть ваш комментарий. Это то, что происходило! Так грустно CMake don ' t жалуйтесь на неправильные цитаты. Пожалуйста, будьте моим гостем и ответьте на вопрос! –

ответ

2

Вы можете проверить значение переменной TARGET_ARCHITECTURE с помощью message() и вы нашли КЭШ является часть этого значения.

Это потому, что вы используете в set() команды двойные кавычки, которые не являются распространенными из них ("), но конкретного языка (). Таким образом, лечение CMake set() команда как не CACHE 'd one. Это является причиной сообщения об ошибке.

 Смежные вопросы

  • Нет связанных вопросов^_^