Вызов set_target_properties с неверным количеством аргументов? - PullRequest
15 голосов
/ 11 июля 2010

Вот мой простой файл CMakeLists.txt:

include_directories (${CMAKE_SOURCE_DIR}/common)
find_package(Threads)

add_library (libusbmuxd SHARED libusbmuxd.c sock_stuff.c ${CMAKE_SOURCE_DIR}/common/utils.c)
find_library (PTHREAD pthread)
target_link_libraries (libusbmuxd ${CMAKE_THREAD_LIBS_INIT})

# 'lib' is a UNIXism, the proper CMake target is usbmuxd
# But we can't use that due to the conflict with the usbmuxd daemon,
# so instead change the library output base name to usbmuxd here
set_target_properties(libusbmuxd PROPERTIES OUTPUT_NAME usbmuxd)
set_target_properties(libusbmuxd PROPERTIES VERSION ${LIBUSBMUXD_VERSION})
set_target_properties(libusbmuxd PROPERTIES SOVERSION ${LIBUSBMUXD_SOVERSION})

install(TARGETS libusbmuxd
    ARCHIVE DESTINATION lib${LIB_SUFFIX}
    LIBRARY DESTINATION lib${LIB_SUFFIX}
)
install(FILES usbmuxd.h usbmuxd-proto.h DESTINATION include)

Это дает мне ошибку:
CMake error at CMakeLists.txt:12 (set_target_properties):<br> set_target_properties called with incorrect number of arguments

CMake error at CMakeLists.txt:13 (set_target_properties):<br> set_target_properties called with incorrect number of arguments Это второй и третий set_target_properties.У первых set_target_properties такой проблемы не было?
(Если вы еще не поняли, я пытаюсь собрать usbmuxd-1.0.4)

1 Ответ

36 голосов
/ 11 июля 2010

Формат SET_TARGET_PROPERTIES:

SET_TARGET_PROPERTIES(
    target1 target2 ... targetM
    PROPERTIES 
    prop1 val1 prop2 val2 ... propN valN
)

Причина вашей проблемы в том, что ваши переменные LIBUSBMUXD_VERSION и LIBUSBMUXD_SOVERSION не определены, и поэтому синтаксис вашей команды:

SET_TARGET_PROPERTIES(target PROPERTIES name)

Вместо:

SET_TARGET_PROPERTIES(target PROPERTIES name value)

Чтобы это исправить, попробуйте заключить в кавычки переменные;использование «$ {LIBUSBMUXD_SOVERSION}» должно гарантировать, что оно принимает значение пустой строки, даже если переменная не определена, тем самым придерживаясь синтаксиса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...