如何在CMake项目中配置SDL3.dll?
如何在CMake项目中配置SDL3.dll?
兄弟,我懂你这种跟着教程搭好CMake项目,但自己编译了SDL3源码后,卡在SDL3.dll配置上的感觉!之前折腾自行编译的第三方库我也踩过类似的坑,结合你的情况,给你几个靠谱的解决办法:
一、让CMake自动拷贝DLL(最省心的方式)
直接在你的项目CMakeLists.txt里添加这段配置,每次编译完成后,SDL3.dll会自动同步到可执行文件的输出目录,不用你手动找路径复制:
# 定位到你自行编译好的SDL3库 find_package(SDL3 REQUIRED) # 获取SDL3的Release版DLL路径;如果是Debug编译,把RELEASE改成DEBUG即可 get_target_property(SDL3_DLL_PATH SDL3::SDL3 IMPORTED_LOCATION_RELEASE) # 编译完成后自动复制DLL到项目输出目录 add_custom_command(TARGET 你的项目目标名 POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different ${SDL3_DLL_PATH} $<TARGET_FILE_DIR:你的项目目标名> )
要是CMake找不到你自行编译的SDL3,记得在配置CMake时指定SDL3_DIR,指向你SDL3编译目录下的lib/cmake/SDL3文件夹——用命令行的话就加参数-DSDL3_DIR=你的SDL3编译路径/lib/cmake/SDL3,用CMake GUI的话直接手动选择这个路径就行。
二、手动拷贝DLL(快速测试首选)
要是不想修改CMake配置,也可以手动操作:你编译完SDL3源码后,在编译目录的bin文件夹下(会分Release、Debug子目录)就能找到对应的SDL3.dll,直接把它复制到你的项目生成的可执行文件(.exe)所在的文件夹,和.exe放在同一级目录,程序运行时就能正常加载DLL了。
三、临时用环境变量(仅适合应急测试)
把SDL3.dll所在的文件夹路径添加到系统的PATH环境变量中,这样系统全局都能找到这个DLL。不过这个方法只适合临时测试,换电脑或者切换项目时很容易出兼容问题,不推荐长期使用。
另外要注意:你编译SDL3的版本(Release/Debug)要和你的项目编译版本完全一致,不然会出现DLL不兼容的情况哦!
内容来源于stack exchange
相关产品推荐
相关产品推荐

