我们现在需要在golang项目中,调用c库函数。对,没错,这里是使用cgo调用c库封装的DLL文件。当我们经历千难万险排除编译问题,即将进入调试阶段的时候,goland报“could not launch process: Process 7192 has exited with status 3221225781”错误。当时的我,一脸懵逼!编译没错,链接也没有错误,就是不能调试,不能运行!
经过漫长的折腾后,突然想起DLL文件是动态加载的,没有将c库代码打包到EXE,那么有没有可能是DLL文件的加载路径问题呢?于是把DLL文件拷贝到goland生成的EXE文件相同目录下。再试,果然没有报错了!!!
这里需要多说一句的是,不要画蛇添足的把xxxx_d.dll 重名命名为xxxx.dll应为在xxxx.lib中记录了对应DLL的文件名称。如果私自改名后,就不能正常运行(release版本则忽略这段)。遇到问题记录一下,好记性不如烂笔头!

更多推荐

could not launch process: Process XXX has exited with status XXXX