2012-06-07 7 views
4

Вот моя попыткаКак написать cmake для библиотеки?

IF (NOT WIN32) 
    #INSTALL_TARGETS(${LIB_INSTALL_DIR} ${tinyscheme-nix_BINARY_DIR}/libtinyscheme.so) 
    #INSTALL(TARGETS ${tinyscheme-nix_BINARY_DIR}/libtinyscheme.so DESTINATION ${LIB_INSTALL_DIR}) 
ENDIF() 

оба варианта неправильны. я хочу переместить libtinyscheme.so из $ {tinyscheme-nix_BINARY_DIR} в/lib или/lib64, в основном я думаю, что $ {LIB_INSTALL_DIR} обрабатывает его.

Так как я могу это сделать? где моя ошибка?

ответ

4

Возможно, вам нужна версия FILESinstall, а не версия TARGETS.

Версия TARGETSinstall используется для реальных целей CMake, которые были добавлены с использованием, например, add_library. В этом случае вы должны ссылаться на цель по ее имени, назначенному во время команды add_library, а не на ее полный путь.

Так что замена TARGETS на FILES в вашей второй команде была бы способ пойти сюда, я думаю.

Для получения подробной информации о команде install, запустите:

cmake --help-command install 
+1

я вижу, кажется, LIB_INSTALL_DIR не работает, как я хочу, чтобы это – Cynede

+2

@Sholy 'install' обычно должны просто указать путь относительно [ '$ {CMAKE_INSTALL_PREFIX}'] (http://www.cmake.org/cmake/help/v2.8.8/cmake.html#variable:CMAKE_INSTALL_PREFIX), поэтому, если вы установите '$ {LIB_INSTALL_DIR}' в "lib" или "lib64", и оставить '$ {CMAKE_INSTALL_PREFIX}' установленным по умолчанию, библиотека закончится в/usr/local/lib или/usr/local/lib64. – Fraser

+0

@Fraser Ваш комментарий указывает на некоторые глубокие взгляды на cmake, однако у меня есть еще несколько вопросов о '$ {LIB_INSTALL_DIR}', которые я положил [здесь] (http://stackoverflow.com/q/36723588/258418). Некоторые дополнительные идеи были бы очень оценены. – ted

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

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