Я хочу включить просителя в свой проект с помощью CMake. У меня Ubuntu 14.04 LTE и QTCreator. Проект содержит файлы main.cpp и связанные библиотеки, хранящиеся в каталоге libs.Assimp with cmake
Главная CMakeLists.txt
cmake_minimum_required(VERSION 2.6)
project(test)
find_package(OpenGL REQUIRED)
# libs contain external libaries
add_subdirectory (libs)
include_directories(
libs/glfw-3.0.4/include
libs/assimp-3.1.1/include/
)
set(allLibs
${GLFW_LIBRARIES}
${OPENGL_LIBRARY}
GLEW_LIB
assimp
)
add_executable(test
main/main.cpp
)
target_link_libraries(Manipulator glfw assimp ${allLibs})
CMakeList.txt внутри директории LIBS
### GLFW ###
add_subdirectory (glfw-3.0.4)
include_directories(
glfw-3.0.4/include/GLFW/
glew-1.11.0/include/
assimp-3.1.1/include/
)
set(OPENGL_LIBRARY
-lGL -lGLU -lXrandr -lXext -lX11 -lrt
${CMAKE_DL_LIBS}
${GLFW_LIBRARIES}
)
### GLEW ###
set(GLEW_SOURCE
glew-1.11.0/src/glew.c
)
add_library(GLEW_LIB STATIC
${GLEW_SOURCE}
)
target_link_libraries(GLEW_LIB
${OPENGL_LIBRARY}
)
### ASSIMP ###
# Zlib
add_subdirectory(assimp-3.1.1/contrib/zlib)
# Boost workaround
include_directories(assimp-3.1.1/code/BoostWorkaround)
add_definitions(-DASSIMP_BUILD_BOOST_WORKAROUND)
# Compile AssImp
add_subdirectory(assimp-3.1.1/code)
и я получаю следующее сообщение об ошибке.
CMake Ошибка при LIBS/assimp-3.1.1/код/CMakeLists.txt: 725 (УСТАНОВИТЬ): установить TARGETS не дали не АРХИВ назначения для целевой статической библиотеки "assimp".
Эта точка я к этому
INSTALL(TARGETS assimp # 725 line
LIBRARY DESTINATION ${ASSIMP_LIB_INSTALL_DIR}
ARCHIVE DESTINATION ${ASSIMP_LIB_INSTALL_DIR}
RUNTIME DESTINATION ${ASSIMP_BIN_INSTALL_DIR}
COMPONENT ${LIBASSIMP_COMPONENT})
Как правильно связать эту библиотеку?
Вероятно, что '$ {ASSIMP_LIB_INSTALL_DIR}' не определено в этой точке. Вы можете попытаться определить его для некоторого значения и повторите попытку. Но для привязки к [статической] библиотеке вам не нужно ее устанавливать, возможно, вам следует просто удалить/закомментировать директиву 'install (...)'? – user3159253