一. 背景:最近自己编写了一个llama.cpp的桌面端,打包成portable便携版exe后给别人使用,一部分电脑可以正确加载GGUF和llama.cpp预编译版的依赖,另一部分电脑却总是运行失败。
二. 查找:1. 首先使用命令行查询一下是不是目标端口被占用,我使用8080端口,命令如下:
netstat -ano | findstr :8080发现端口没被占,如果被占用也可以直接换一个端口即可。2. 将llama.cpp的依赖库所在路径添加到用户环境变量,打开命令行,输入:
llama-server.exe --version发现无法显示任何内容,很明显这个exe无法正确运行。那么如何直达根因呢?首先一个,别人的windows电脑能运行,你的运行不了,大概率是环境依赖问题,要么依赖缺失,要么依赖的版本不对,如果是这样那么找出这个依赖到能正确运行的电脑上复制一下就可以。
三. 解决:有两个工具可以辅助找出根因:(1)下载Dependencies_x64,运行DependenciesGui.exe,然后将目标exe(比如llama_server.exe)拖进去,查一下有没有标红的,但是注意这个工具只能检查是否缺失,无法检查版本是否正确。 (2)使用事件查看器,到windows搜索框中输入事件查看器,然后回车,点击左侧的Windows日志,再点击应用程序,找到红色感叹号标识的事件,到常规里查看是否是你运行出错的那个,把错误信息和异常代码,还有你的应用程序的基本功能信息发送给qwen或者deepseek,它能帮你准确定位缺失的依赖。
四.总结:由于我本身不做全栈,只做算法,所以没有实际软件的部署与应用经验,大佬勿喷。目前也开始慢慢尝试转型做agent应用了,我这里重点推荐工具二,结合大模型可以很快定位错误根因并快速修正。