Я хочу дополнительно добавить некоторые библиотечные пути в моем файле CMakeLists и способ сделать это, чтобы иметь переменную установить в качестве:Cmake сравнение строк не удается
set(MYLIBDIR "DEFAULT")
Если пользователь хочет указать пользовательский каталог он изменит его:
set(MYLIBDIR /path/to/dir1
/path/to/dir2)
Так что для того, чтобы проверить, если пользователь действительно обеспечила дополнительные каталоги я проверяю:
if(NOT ${MYLIBDIR} STREQUAL "DEFAULT")
link_directories(${MYLIBDIR})
endif()
Когда я пытаюсь сделать это, я получаю сообщение об ошибке cmake. Есть ли способ объединить все элементы переменной перед сравнением строк?
Не могли бы вы также дать сообщение об ошибке вы получили? Можете ли вы попробовать 'if (NOT MYLIBDIR STREQUAL" DEFAULT ")'? Подробнее см. [Что такое синтаксис CMake для установки и использования переменных?] (Http://stackoverflow.com/questions/31037882/whats-the-cmake-syntax-to-set-and-use-variables) и [CMake сравните с пустой строкой с ошибкой STREQUAL] (http://stackoverflow.com/questions/19982340/cmake-compare-to-empty-string-with-strequal-failed). – Florian
Ошибка: CMake Error на CMakeLists.txt: 264 (если): , если заданные аргументы: «NOT» «/ path/to/dir1» «/ path/to/dir2» «STREQUAL» «ПО УМОЛЧАНИЮ» Неизвестные аргументы указаны ' – user4168715
О, спасибо большое. Я нашел ответ в первой ссылке, на которую вы ссылались. Мне пришлось написать 'if (NOT" $ MYLIBDIR} STREQUAL "DEFAULT") ' – user4168715