Я хочу связать физический фреймворк Chipmunk2D с SDL через CMake.
У меня есть следующая структура проекта:
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)
CMakeList.txt из src переходит к действию:
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 мои вопросы:
- Нужно ли мне запускать Makefiles из библиотек бурундуков только один раз, чтобы я мог собрать статическую библиотеку?
- После того, как я включил CMakefile от бурундука в свой Cmakefile, кажется, что он не может найти статическую библиотеку (кстати, я на Linux)
- Если у меня есть статическая библиотека, могу ли я удалить все содержимое 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. Что именно вы пробовали и какое точное сообщение об ошибке (или другое описание ошибки) вы получили? - person Tsyvarev   schedule 04.11.2018