【发布时间】:2018-11-06 00:19:31
【问题描述】:
我想通过 CMake 将 Chipmunk2D physics framework 与 SDL 链接。
我的项目结构如下:
MyProject
-chipmunk:
--include
--demo:
---CMakeList.txt
--src:
---CMakeList.txt
--CMakeList.txt
-src:
--main.cpp
-CMakeLists.txt
我阅读了有关静态库和共享库的信息,并决定要使用静态库,因此我进入了花栗鼠文件夹并运行了 cmake 。
1.第一个CMakeList文件设置选项:
message(STATUS "Set BUILD_STATIC option ON")
option(BUILD_SHARED "Build and install the shared library" ON)
option(BUILD_STATIC "Build as static library" ON)
option(INSTALL_STATIC "Install the static library" ON)
然后:
add_subdirectory(src)
-
来自 src 的 CMakeList.txt 进入动作:
if(BUILD_STATIC) message(STATUS "BUILDING chipmunk_static") add_library(chipmunk_static STATIC ${chipmunk_source_files}) set_target_properties(chipmunk_static PROPERTIES OUTPUT_NAME chipmunk) if(INSTALL_STATIC) message(STATUS "INSTALL chipmunk_static ${LIB_INSTALL_DIR}") install(TARGETS chipmunk_static ARCHIVE DESTINATION {LIB_INSTALL_DIR}) endif(INSTALL_STATIC) endif(BUILD_STATIC) -
在演示文件夹中,CmakeFile 执行以下操作:
set(chipmunk_demos_libraries chipmunk_static ${GLEW_LIBRARIES} ${OPENGL_LIBRARIES} )
S0 我的问题是:
- 我是否只需要从花栗鼠库运行 Makefile 一次,以便构建静态库?
- 在我的 Cmakefile 中包含来自 chipmunk 的 CMakefile 后,它似乎找不到静态库(我在 Linux 顺便说一句)
- 如果我构建了静态库,我可以从 Chimmunk 中删除所有 src 内容并只保留标头吗?
我试图找到花栗鼠静态库没有成功:
add_subdirectory(chipmunk)
find_package(SDL2 REQUIRED)
find_library(CHIPMUNK_LIB chipmunk_static)
message(${CHIPMUNK_LIB})
【问题讨论】:
-
问题帖中有几个问题,一个都不清楚。
... it seems it cannot found the static library- 网上有很多关于链接外部库的信息,包括关于 Stack Overflow 的问题。您到底尝试了哪些确切的错误消息(或其他错误描述)?
标签: makefile cmake sdl chipmunk