SET_TARGET_PROPERTIES(
wtdbo
PROPERTIES
VERSION ${VERSION_SERIES}.${VERSION_MAJOR}.${VERSION_MINOR}
SOVERSION ${WTDBO_SOVERSION}
DEBUG_POSTFIX "d"
)
Ошибка:
Ошибка CMake в src / Wt / Dbo / CMakeLists.txt: 18 (SET_TARGET_PROPERTIES): set_target_properties вызывается с неправильным количеством аргументов
Если я удалю его, все будет нормально.
Есть идеи, почему?
Спасибо,
Омер
2 ответа
Вы уверены, что у вас правильно установлены переменные? Я проверил этот файл CMakeLists.txt, и он работает правильно:
CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
PROJECT(test CXX)
ADD_LIBRARY(wtdbo SHARED test.cc)
SET(WTDBO_SOVERSION 1)
SET(VERSION_SERIES 1)
SET(VERSION_MAJOR 0)
SET(VERSION_MINOR 0)
SET_TARGET_PROPERTIES(
wtdbo
PROPERTIES
VERSION ${VERSION_SERIES}.${VERSION_MAJOR}.${VERSION_MINOR}
SOVERSION ${WTDBO_SOVERSION}
DEBUG_POSTFIX "d"
)
Однако, если я закомментирую строку SET(WTDBO_SOVERSION 1)
, я получу то же сообщение об ошибке, что и вы. Помощь для set_target_properties
заключается в следующем, так что вы определенно делаете правильные вещи:
Цели могут иметь свойства, влияющие на их построение.
set_target_properties(target1 target2 ... PROPERTIES prop1 value1 prop2 value2 ...)
Задайте свойства цели. В синтаксис команды - перечислить все файлы, которые вы хотите изменить, а затем укажите значения, которые вы хотите установить следующий. Вы можете использовать любую пару значений опоры вы хотите и извлеките его позже с помощью
GET_TARGET_PROPERTY
команда.
Помните, что это макрос, поэтому символы заменяются перед оценкой. Это означает, что символы, представляющие собой пустые строки, будут заменены на ничего перед оценкой. Таким образом, если WTDBO_SOVERSION равен "", то
SET_TARGET_PROPERTIES(wtdbo PROPERTIES SOVERSION ${WTDBO_SOVERSION})
Станет
SET_TARGET_PROPERTIES(wtdbo PROPERTIES SOVERSION)
И это вызовет ошибку. Если для ваших целей подходят пустые строки, заключите символ в кавычки. например
SET_TARGET_PROPERTIES(wtdbo PROPERTIES SOVERSION "${WTDBO_SOVERSION}")
Похожие вопросы
Новые вопросы
cmake
CMake - это кроссплатформенный генератор систем с открытым исходным кодом. Он генерирует файлы для систем сборки, такие как собственные make-файлы, ninja-build и файлы проектов для нескольких интегрированных сред разработки.