Open lwgm opened 5 months ago
参照https://docs.kungfu-trader.com/latest/10-development.html#setup
使用vs自带的 x64 Native Tools Command Prompt VS 2022 可以编译成功了。
运行的时候,运行不了....
@lwgm
核心是第1,2步,先定位具体crash的问题
@kungfu-origin
因为本地 vc_redist 早已更新为最新版本,和 vs2022 是匹配的,但是为何编译的时候,会把低版本的 msvcp140.dll 打包进去,怀疑是vs2022自带的msvcp140.dll不匹配,是否能在编译流程中能避免
@lwgm
[Debug]
核心是第1,2步,先定位具体crash的问题
- 定位到问题是electron触发了 render-process-gone 事件,导致crash了,那就进行debug,参考:Electron 中的 crash 上报和 dump 分析 ,生成 dmp 文件即可
- 直接使用 vs2022 打开 dmp 文件,进行调试,定位到问题是msvcp140.dll的版本问题(本地已经更新过,错误信息可能是“未找到metux.C”),参考。Access violation with std::mutex::lock after upgrading to VS 2022 version 17.10.0
- 所以问题就出现在编译后 ...core\dist\kfc\MSVCP140.dll 的版本跟vs 2022 17.10所需要的版本不匹配,前提是已经安装了最新的vc_redist
- 最终将 C:\Windows\System32下msvcp140.dll (留意是否是14.40.xxxx版本)拷贝到 ...core\dist\kfc 目录下覆盖即可
@kungfu-origin
[疑问]
因为本地 vc_redist 早已更新为最新版本,和 vs2022 是匹配的,但是为何编译的时候,会把低版本的 msvcp140.dll 打包进去,怀疑是vs2022自带的msvcp140.dll不匹配,是否能在编译流程中能避免
试了下替换msvcp140.dll,可以正常运行了,感谢大神。
另外,试了下,加了捕获代码,抓到dump文件,报的是未找到 mutex.c。
系统是 windows11 cmake version 3.29.5 node v14.21.3 yarn 1.22.22 python 3.9.10 pipenv version 2024.0.1 vs 2022 安装vs2022的时候选了windows sdk。
编译的时候报错
安装Visual Studio.时候,把windows的sdk都勾上,是不是还有什么其他的地方没有配置对?