【发布时间】:2015-08-28 05:12:35
【问题描述】:
我想使用 CMake 将 assimp 包含到我的项目中。我有 Ubuntu 14.04 LTE 和 QTCreator。 项目包含 main.cpp 和存储在 libs 目录中的链接库。
主 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} )
libs 目录下的 CMakeList.txt
### 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 )
我收到以下错误。
libs/assimp-3.1.1/code/CMakeLists.txt:725(安装)处的 CMake 错误: 安装 TARGETS 给定没有 ARCHIVE DESTINATION 的静态库目标 “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(...)指令?