【问题标题】:How to Add External Project SDL_mixer to a Project with SDL 1.2?如何将外部项目 SDL_mixer 添加到使用 SDL 1.2 的项目中?
【发布时间】:2019-03-27 03:45:21
【问题描述】:

我正在尝试使用 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 。 && make with Test 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.

在测试 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

在测试 2 和 3、cmake 中添加了 sudo。 && 使用测试 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)

【问题讨论】:

  • 在 CMake 中,ExternalProject_Add 只是执行所需的命令作为构建步骤(下载、配置、构建等)。您可以尝试手动执行命令(从命令行,不使用 CMake),并找到适合您的命令。然后尝试将正确的命令转换为ExternalProject_Add 调用。如果您在具体转型上遇到困难,请询问具体转型。

标签: cmake sdl sdl-mixer sdl-1.2


【解决方案1】:

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

导出 PATH=/path/to/sdl/bin:$PATH

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

然后再试一次。这应该可以修复您的输出。也不要错过机会并尝试星球大战黑暗力量 dosbox/psx 游戏,只是说如果它可能会很棒。

【讨论】:

    猜你喜欢
    • 2018-09-14
    • 2011-07-18
    • 1970-01-01
    • 2012-05-03
    • 2011-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多