如何使用SDL 1.2将外部项目SDL_mixer添加到项目中?

时间:2018-10-23 01:45:23

标签: cmake sdl sdl-mixer sdl-1.2

我正在尝试使用cmake从Abuse构建滥用工具。滥用工具主要取决于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)

cmake。 &&带有测试1的make返回:

*** 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.

使用测试2和3 cmake添加了SDL_CONFIG。 &&回报:

/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。 &&使用Test 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.

返回第一个方框:/

基本上,我无法使用带有cmake的SDL_mixer库来构建滥用工具。

任何帮助将不胜感激。 谢谢。

一些参考文献:
-https://gist.github.com/gamefreak/615275(SDL 1.2)
-https://gist.github.com/SergNikitin/d8d9441120d00459201d(SDL 2)

1 个答案:

答案 0 :(得分:0)

最近在Ububtu 14.x上安装dosbox-0.74-2.tar.gz时,我对sdl感到有些困惑,并且代码完全相同。看起来我需要安装“ libsdl1.2”或“ libsdl1.2-dev”,请确保您具有最新版本或适合您的版本。如果您仍然遇到相同的问题,因为sdl是最新的,请按照说明进行操作,将PATH添加到sdl bin目录和/或设置SDL_CONFIG变量:

export PATH = / path / to / sdl / bin:$ PATH

导出SDL_CONFIG = / full / path / to / sdl-config

,然后重试。这应该修复您的输出。也不要错过机会,尝试一下《星球大战:黑暗力量》 dosbox / psx游戏,只是说这可能会很棒。