超级玛丽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,就不会有问题了。

 

posted @ 2023-05-13 22:46  园友1683564  阅读(205)  评论(0编辑  收藏  举报