错误1:无法解析的外部符号 __imp_curl_global_init...
打开 build\alibabacloud-oss-cpp-sdk.sln,在cpp-sdk的属性里的 “C/C++”找到预处理器,在预处理器定义中添加“;BUILDING_LIBCURL;HTTP_ONLY;”并保存,重新生成解决方案解决。
错误2:无法解析的外部符号 EVP_MD_CTX_init...
找到虚幻引擎文件夹 Engine\Source\ThirdParty\OpenSSL ,在任一版本的 Include文件夹下找到头文件evp.h,查看Copyright是否为"1995-2018",若是则将所有头文件复制,粘贴到 third_party\include\openssl 和 sdk\include\openssl 下,只重新生成解决方案 cpp-sdk解决。
错误3:模块XXX无法被加载,因此插件加载失败。可能存在系统错误,或模块未能正确设置。
找到项目Binaries文件夹,把SDK所提供的动态库拖入此文件夹即可。
错误4:打包失败:error LNK2005:SSL_CTX_free ssleay32.lib(SSLEAY32.dll)等
可能是UE的静态库版本和阿里云SDK的不一样,在一些函数定义上有区别而查找不到报错。优先使用引擎的依赖库(libcurl、libeay32和ssleay32)。
解决方案:将 third_party\lib\x64 下的静态库和动态库全部替换成虚幻的,查找方式可以用Everything工具、或手动在引擎里查找。重新生成解决方案解决。
错误5:curl_global_init 无法解析的外部符号...
打开 build\alibabacloud-oss-cpp-sdk.sln,在cpp-sdk的属性里的 “C/C++”找到预处理器,在预处理器定义中删除“CURL_STATICLIB”并保存,重新生成解决方案解决。
错误6:在纯函数里使用OSS的方法导致崩坏
暂不清楚原理,将原来的纯函数改为一般的函数就不再崩坏。