Как добавить внешний проект SDL_mixer в проект с SDL 1.2?
Я пытаюсь собрать инструмент злоупотребления из Abuse с помощью cmake. Злоупотребление инструментом в основном зависит от SDL1.2 и SDL_mixer.
Итак, у меня есть следующий файл CMakeLists.txt:
cmake_minimum_required (VERSION 3.12)
find_package (Threads)
include(${CMAKE_ROOT}/Modules/ExternalProject.cmake)
# SDL library
ExternalProject_Add(sdl_project
URL http://www.libsdl.org/release/SDL-1.2.15.tar.gz
PREFIX ${LIBS_DIR}/SDL
BUILD_IN_SOURCE 1
CONFIGURE_COMMAND ./configure
BUILD_COMMAND make -j2
INSTALL_COMMAND ""
)
ExternalProject_Get_Property(sdl_project SOURCE_DIR)
ExternalProject_Get_Property(sdl_project BINARY_DIR)
set(SDL_SRC ${SOURCE_DIR})
set(SDL_BIN ${BINARY_DIR})
# SDL_mixer library
ExternalProject_Add(sdl_mixer_project
URL http://www.libsdl.org/projects/SDL_mixer/release/SDL_mixer-1.2.12.tar.gz
DEPENDS sdl_project
PREFIX ${LIBS_DIR}/SDL_mixer
BUILD_IN_SOURCE 1
# Test 1
CONFIGURE_COMMAND ./configure
# Test 2
CONFIGURE_COMMAND SDL_CONFIG=${LIBS_DIR}/SDL/src/sdl_project/sdl-config ./configure
# Test 3
CONFIGURE_COMMAND LDFLAGS=-L${SDL_BIN} CFLAGS=-I${SDL_SRC}/include SDL_CONFIG=${SDL_BIN}/sdl-config ./configure
# Test 4
CONFIGURE_COMMAND SDL_CONFIG=${LIBS_DIR}/SDL/src/sdl_project/sdl-config sudo ./configure
BUILD_COMMAND make -j2
INSTALL_COMMAND ""
)
file(GLOB source_files
"src/*.h"
"src/*.cpp"
)
add_executable(abuse-tool ${source_files})
add_dependencies(abuse-tool sdl_project sdl_mixer_project)
чмокать && make с тестом 1 возвращает:
*** The sdl-config script installed by SDL could not be found
*** If SDL was installed in PREFIX, make sure PREFIX/bin is in
*** your path, or set the SDL_CONFIG environment variable to the
*** full path to sdl-config.
Добавлен SDL_CONFIG с тестами 2 и 3, cmake . && сделать возврат:
/path/to/sdl-config: Permission denied
*** Could not run SDL test program, checking why...
*** The test program failed to compile or link. See the file config.log for the
*** exact error that occured. This usually means SDL was incorrectly installed
*** or that you have moved SDL since it was installed. In the latter case, you
*** may want to edit the sdl-config script: /path/to/sdl-config
добавленной sudo
проверить 2 и 3, cmake . && make с тестом 4 возвращает:
*** The sdl-config script installed by SDL could not be found
*** If SDL was installed in PREFIX, make sure PREFIX/bin is in
*** your path, or set the SDL_CONFIG environment variable to the
*** full path to sdl-config.
Возвращается на круги своя:/
По сути, я не могу собрать инструмент злоупотреблений с библиотекой SDL_mixer с помощью cmake.
Любая помощь будет признательна по этому вопросу. Благодарю.
Некоторые ссылки:
- https://gist.github.com/gamefreak/615275 (SDL 1.2)
- https://gist.github.com/SergNikitin/d8d9441120d00459201d (SDL 2)
1 ответ
Недавно у меня были некоторые проблемы с sdl при установке dosbox-0.74-2.tar.gz на Ububtu 14.x, и у меня точно такая же строка; Похоже, мне нужно было установить "libsdl1.2" или "libsdl1.2-dev", убедитесь, что у вас последняя версия или та, которая подходит для вашей компиляции. Если у вас по-прежнему возникает та же проблема, так как sdl обновлен, делайте, как он говорит, добавьте свой PATH в каталог bin sdl и / или установите переменную SDL_CONFIG:
экспорт PATH=/ путь / к /sdl/bin:$PATH
экспорт SDL_CONFIG=/ полный / путь / к /sdl-config
и попробуйте еще раз. Это должно исправить ваш вывод. Также не упустите шанс и попробуйте игру DOSBox / PSX для Star Wars Dark Force, просто сказав, будет ли это возможно.