为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用swig/cgo调试“退出状态3221225477”?

如何使用swig/cgo调试“退出状态3221225477”?

Go
凤凰求蛊 2022-08-15 10:03:08
我正在使用SWIG与golang的集成来生成cgo文件。我正在链接一个C++lib和Go。我已经安装了我的软件包:并且它发生得很好。但是当我在这里启动我的主要示例时:swig -go -cgo -c++ -intgosize 64 ./basic_host.igo installpackage mainimport (    "fmt"    "myLib/basic_host")func main() {    fmt.Println("Hello")    basic_host.PrintHelpAndExit("test", 0)    fmt.Println("World!")}当我尝试启动它时,我得到了,我的打印问候甚至没有被考虑在内,似乎我的程序甚至没有启动...我不知道如何处理这个问题,因为调试工具甚至没有启动。exit status 3221225477退出状态似乎与NIL指针引用有关:请参阅此处,肯定是由于cgo集成。我正在Windows 10上使用MinGW构建,在我的配置下:swig -versionSWIG Version 4.0.2Compiled with i686-w64-mingw32-g++ [i686-w64-mingw32]Configured options: +pcre我的SWIG接口文件是这样的(basic_host.i):%module basic_host%{    #include <atomic>    #include <map>    #include <iostream>    #include <memory>        #include <myLib/myLib.hpp>    #include "../../examples/basic_host/command_line.h"    #include "../../examples/basic_host/command_line.cpp"%}%inline %{    extern void printHelpAndExit(const char* binary, unsigned int exitCode);%}
查看完整描述

1 回答

?
芜湖不芜

TA贡献1796条经验 获得超7个赞

我遇到的问题是我在Windows上使用的编译器。我曾经使用TDM-GCC进行编译,但是正如这篇文章所暗示的那样,这和lib之间存在已知问题......iostream

我刚刚将我用SWIG构建的编译器(gcc,g++ ,..)更改为MinGW64:下载链接。在那之后,一切都可以正常工作,我能够毫无问题地使用我的lib。感谢那些试图帮助我的人。


查看完整回答
反对 回复 2022-08-15
  • 1 回答
  • 0 关注
  • 120 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信