【问题标题】:Avoid Modifying Compiler and Linker Settings every time to use SDL in projects避免每次修改编译器和链接器设置以在项目中使用 SDL
【发布时间】:2021-05-26 16:33:47
【问题描述】:

我最近开始计划开发一个简单的游戏,为此我安装了 SDL for VS。但是每次我创建一个新项目时,我都必须转到该项目的属性-> 编译器和属性-> 链接器来添加我的 SDL 库。我可以永久包含这些设置吗? 另外,是否有必要在我的项目中每次都包含“.dll”,或者我也可以链接它们以供随时使用。

【问题讨论】:

    标签: visual-studio visual-studio-code dll linker sdl


    【解决方案1】:

    我最近一直在使用带有 VS 和 SDL 的 CMake,它稍微减少了这种烦恼。您的顶级目录(以及其他目录,取决于您组织项目的方式)将有一个 CMakeLists.txt 文件,该文件处理包含目录、查找库和 DLL 以及构建任何依赖项。我目前的项目是这样的:

    cmake_minimum_required(VERSION 3.19)
    
    project(chip8emu VERSION 1.0 DESCRIPTION "Chip-8 Emulator" LANGUAGES CXX)
    
    set(SDL2_INCLUDE_DIR "C:/dev/vclibs/SDL2-2.0.14/include")
    set(SDL2_LIBRARY "C:/dev/vclibs/SDL2-2.0.14/lib/x64")
    
    FIND_PACKAGE(Boost REQUIRED COMPONENTS log)
    FIND_PACKAGE(wxWidgets)
    ADD_DEFINITIONS(-DBOOST_LOG_DYN_LINK)
    INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIR})
    INCLUDE_DIRECTORIES(${wxWidgets_INCLUDE_DIRS})
    INCLUDE_DIRECTORIES(${SDL2_INCLUDE_DIR})
    INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR})
    add_executable(chip8emu chip8emu.cpp chip8.cpp chip8.h "logger.h" "logger.cpp" "emuWindow.h" "emuWindow.cpp" "beeper.h" "beeper.cpp" "cApp.h" "cApp.cpp" "cMain.h" "cMain.cpp" )
    
    target_link_libraries(chip8emu PRIVATE Boost::log_setup Boost::log ${SDL2_LIBRARY}/SDL2main.lib ${SDL2_LIBRARY}/SDL2.lib ${wxWidgets_LIB_DIR})
    

    我基本上可以将它复制并粘贴到每个项目目录中(更改add_executable() 行)。

    这种方法有利也有弊,但我喜欢它,因为它使集成库变得容易,并且减少了我对 VS 的依赖。 This 是一个很好的入门教程(虽然看起来很吓人,但其实很简单)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-07-20
      • 1970-01-01
      • 1970-01-01
      • 2021-09-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多