您当前的位置: 首页 >  windows
  • 1浏览

    0关注

    483博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

windows vs2019 编译 SDL2, SDL_string.obj : error LNK2019: 无法解析的外部符号 memset

高精度计算机视觉 发布时间:2019-10-25 23:10:10 ,浏览量:1

SDL 就不介绍了,我也是第一次使用,下载地址:https://www.libsdl.org/

SDL2下载下来后,发现里面有cmakelist,老规矩,用cmake-gui 进行配置编译,什么参数都没改,一切使用默认,

Configure===>Generate===>Open project

Debug模式一次全面通过,感叹SDL的cmake工作做的很好。Release模式应该也没问题吧?

当然,没问题就不到这来写了,报错:

SDL_string.obj : error LNK2019: 无法解析的外部符号 memset,该符号在函数 SDL_vsnprintf_REAL 中被引用

于是打开SDL_string看了下源码,发现cmake配置使用LIBC的情况下,可以顺利生成通过Release版本。我使用的是默认的,源上看应该是能调用SDL_memset的地方会调用这个SDL_memset函数,没看到SDL_vsnprintf哪里调用了memset。这个函数应该是windows最基本的库里面,于是搜索一下,找到这个链接

https://stackoverflow.com/questions/58288692/cant-build-solution-in-release-mode-for-sdl-library-on-vs-2019

当然你可以找到cmakelist.txt中的第1338行,

把 list(APPEND EXTRA_LIBS user32 gdi32 winmm imm32 ole32 oleaut32 version uuid advapi32 shell32) 改成 list(APPEND EXTRA_LIBS vcruntime user32 gdi32 winmm imm32 ole32 oleaut32 version uuid advapi32 shell32)

我比较懒,直接在项目附加依赖项里添加vcruntime.lib,如下,

编译通过,结束!

 

 

关注
打赏
1661664439
查看更多评论
立即登录/注册

微信扫码登录

0.0369s