fix: SDL2 Linux port - fix black screen by setting CWD to binary path

This commit is contained in:
2026-05-03 11:29:39 +08:00
parent 9b9cb9e86c
commit 897abcf068
8 changed files with 670 additions and 921 deletions
+13 -34
View File
@@ -7,6 +7,12 @@ project(tank_battles_on_the_scrap_paper
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
# ── SDL2 依赖 ──
find_package(SDL2 REQUIRED)
find_package(SDL2_image REQUIRED)
find_package(SDL2_mixer REQUIRED)
find_package(SDL2_ttf REQUIRED)
# ── 源文件 ──
set(SOURCES
tank_battles_on_the_scrap_paper/main.cpp
@@ -18,45 +24,18 @@ set(HEADERS
tank_battles_on_the_scrap_paper/tank.h
tank_battles_on_the_scrap_paper/map.h
tank_battles_on_the_scrap_paper/data_config.h
tank_battles_on_the_scrap_paper/resource.h
)
# ── 可执行文件 ──
add_executable(${PROJECT_NAME} ${SOURCES} ${HEADERS}
tank_battles_on_the_scrap_paper/resource.rc
add_executable(${PROJECT_NAME} ${SOURCES} ${HEADERS})
target_link_libraries(${PROJECT_NAME} PRIVATE
SDL2::SDL2
SDL2_image::SDL2_image
SDL2_mixer::SDL2_mixer
SDL2_ttf::SDL2_ttf
)
# ── Windows 特定配置 ──
if(WIN32)
# EasyX 图形库
target_include_directories(${PROJECT_NAME} PRIVATE
${EASYX_INCLUDE_DIR}
)
# Windows 多媒体库
target_link_libraries(${PROJECT_NAME} PRIVATE
winmm.lib
gdi32.lib
)
# 控制台子系统
set_target_properties(${PROJECT_NAME} PROPERTIES
WIN32_EXECUTABLE FALSE
)
target_compile_definitions(${PROJECT_NAME} PRIVATE
_CONSOLE
_UNICODE
UNICODE
)
else()
# 非 Windows 平台给出提示
message(WARNING
"${PROJECT_NAME} 依赖 EasyX (Windows-only 图形库)"
"当前平台不支持编译。仅生成项目结构参考。"
)
endif()
# ── 复制资源文件到构建目录 ──
file(COPY
tank_battles_on_the_scrap_paper/images/