超级玛丽c++版 环境搭建方法
发现一个小工程,学生、初学者用来练习c++很合适,有趣味性。
https://github.com/Kofybrek/Super-Mario-Bros
https://gitee.com/Martian-yu/Super-Mario-Bros 2021年的节点,比较旧了
帮助大家减少搭建环境的麻烦,尽快开箱
png图片被我改过
Microsoft Visual Studio Community 2022 (64 位)
新建一个cmake项目,删掉自动新建的cpp hpp文件。
把这个仓库的源码文件都复制进去
到 https://www.sfml-dev.org 下载 sfml 库: https://www.sfml-dev.org/files/SFML-2.5.1-windows-vc15-64-bit.zip
放入工程。最终工程文件结构如图,out文件夹等编译后才有。
CMakelist.txt 这么写:
# 设置 CMake 最低版本要求
cmake_minimum_required(VERSION 3.15)
# 定义项目名称和版本
project(mario VERSION 1.0.0 LANGUAGES CXX)
# 设置 C++ 标准
set(CMAKE_CXX_STANDARD 17)
# 定义用户可配置的选项
option(ENABLE_DEBUG "Enable debug output" ON)
if(ENABLE_DEBUG)
add_definitions(-DDEBUG_OUTPUT)
endif()
# 自定义宏:添加 MSVC 常用编译选项
macro(add_msvc_options target)
if(MSVC)
target_compile_options(${target} PRIVATE
/W4 # 设置警告级别为 4
/MP # 启用多处理器编译
/permissive- # 禁用不严格的语言 conformance
/Zc:__cplusplus # 启用正确的 __cplusplus 宏值
/Zc:inline # 移除未使用的函数
/Gm- # 禁用最小生成(minimal rebuild)
/EHsc # 指定异常处理模型
)
endif()
endmacro()
# 添加源文件
aux_source_directory(${CMAKE_SOURCE_DIR}/Source SOURCE_FILES)
find_library(SFML_LIB0 sfml-graphics.lib ${CMAKE_SOURCE_DIR}/SFML-2.5.1/lib)
find_library(SFML_LIB1 sfml-window.lib ${CMAKE_SOURCE_DIR}/SFML-2.5.1/lib)
find_library(SFML_LIB2 sfml-system.lib ${CMAKE_SOURCE_DIR}/SFML-2.5.1/lib)
include_directories (${CMAKE_SOURCE_DIR}/Source ${CMAKE_SOURCE_DIR}/SFML-2.5.1/include)
# 生成可执行文件
add_executable(mario ${SOURCE_FILES})
target_link_libraries(mario ${SFML_LIB0} ${SFML_LIB1} ${SFML_LIB2})
# 调用自定义宏,为 mario 添加 MSVC 常用编译选项
add_msvc_options(mario)
# 添加子项目
#add_subdirectory(subproject)
# 在构建时生成配置文件
#configure_file(config.h.in config.h @ONLY)
# 指定安装规则
install(TARGETS mario RUNTIME DESTINATION bin)
install(FILES "${CMAKE_SOURCE_DIR}/libs/dynamic/libDynamic.dll" DESTINATION bin)
编译时,打开一个cpp文件,再去找工具栏
注意:
3个dll 和 Resources 文件夹都和exe文件放在一起。
x64-Debug,生成exe运行时会在读文件那里异常,没功夫管它。
请新建一个x64-Release,就不会有问题了。