You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在树莓派4的QNX SDP8上构建aarch64le版本的SDL2库?

构建适用于QNX SDP8(树莓派4 aarch64le)的SDL2库

我需要将旧程序移植到树莓派4上新发布的QNX SDP8系统,为此必须构建适配aarch64le架构的SDL2库。仅需EGL/OpenGLES2+功能正常,不需要音频相关功能。

我已经尝试了三种构建方法均失败,但不想纠结具体错误信息的修复——核心问题是不清楚SDL针对该环境的正确配置方式,也不想通过强制链接库文件的方式“解决”构建问题,避免后续运行时出现更严重的故障。恳请有相关构建经验的人分享可用的仓库、配置选项等信息。

方法A:用CMake构建QNX Ports仓库中的SDL

  • 克隆仓库并切换到release-2.30.x分支
  • 执行CMake配置:
mkdir build_qnx_rpi4
cd build_qnx_rpi4
source ~/qnx800/qnxsdp_env.sh 
cmake .. \
-DCMAKE_SYSTEM_NAME=QNX \
-DCMAKE_SYSROOT=$QNX_TARGET/aarch64le/usr \
-DCMAKE_C_COMPILER=$QNX_HOST/usr/bin/qcc \
-DCMAKE_CXX_COMPILER=$QNX_HOST/usr/bin/qcc \
-DCMAKE_C_FLAGS="-Vgcc_ntoaarch64le" \
-DCMAKE_BUILD_TYPE=Release \
-DSDL_AUDIO_DRIVER_JACK=OFF \
-DSDL_AUDIO_DRIVER_PIPEWIRE=OFF \
-DSDL_AUDIO_DRIVER_PULSEAUDIO=OFF \
-DSDL_AUDIO_DRIVER_SNDIO=OFF \
-DSDL_AUDIO_DRIVER_ALSA=OFF \
-DSDL_AUDIO=OFF \
-DVIDEO_WAYLAND=OFF
  • 执行构建:
cmake --build . --verbose -- -j4

构建失败,链接阶段提示找不到-lpthread。

方法B:用configure脚本构建QNX Ports仓库中的SDL

  • 克隆仓库并切换到release-2.30.x分支
  • 执行configure配置:
./configure \
--host=aarch64-unknown-nto-qnx8.0.0 \
--prefix=$QNX_TARGET/usr \
CFLAGS="-Vgcc_ntoaarch64le" \
CXXFLAGS="-Vgcc_ntoaarch64le" \
LTCFLAGS="-Vgcc_ntoaarch64le --sysroot=$QNX_TARGET -I$QNX_TARGET" \
CC=qcc \
CXX=qcc \
--disable-shared \
--disable-pulseaudio \
--disable-alsa \
--disable-sndio \
--disable-pipewire \
--disable-jack \
--disable-video-wayland \
--disable-audio
  • 执行构建:make
    编译阶段通过后失败,提示无法同时指定-c/-o和多个文件,排查发现是SDL.lo被重复指定。手动调整libtool命令可成功编译单个文件,但无法生成所需的.a和.so文件。

方法C:使用SDL主仓库

SDL2理论上已修复QNX构建问题,但我找不到能成功构建的SDL2版本。我可以为Raspbian构建多个SDL2版本,也能为QNX构建至少一个SDL3版本,但SDL2在QNX环境下始终无法编译。

内容的提问来源于stack exchange,提问作者ludagad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 11:27:23