Golang中国

之前有一个服务是用Go1.2写的,Go1.7发布后,一直想改成1.7的,其中有一个flume日志模块是调用C++的so包,之前1.2版本的解决方案是通过swig调用,我查看了swig的官方文档,Go1.5之后,通过swig调用C++代码有些变化,但我这边做出修改后,总是出错,请各位大神指点迷津,我的操作不走如下:
1、通过swig命令生成.go和.cxx文件
2、再把生成的文件拷贝到gopath的对应目录下
3、make install
但是最后报错:

我的.i文件如下:

swig生成文件脚本:

最后报错为:

有大神知道的么?

1 回复
yuer437
#1 yuer437 • 2016-10-31 19:38

错误看不清,我重新贴一下:

/tmp/go-build408713353/com.iflytek.ossp/common/cflume/_obj/LogLib_wrap.cxx.o: In function _wrap_sendlog_cflume_fa5fb250c6e385aa': ../common/cflume/LogLib_wrap.cxx:489: undefined reference tologlib::sendlog(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::map<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&)’
/tmp/go-build408713353/com.iflytek.ossp/common/cflume/_obj/LogLib_wrap.cxx.o: In function _wrap_init_cflume_fa5fb250c6e385aa': ../common/cflume/LogLib_wrap.cxx:474: undefined reference tologlib::init(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)’
/tmp/go-build408713353/com.iflytek.ossp/common/cflume/_obj/LogLib_wrap.cxx.o: In function _wrap_close_cflume_fa5fb250c6e385aa': ../common/cflume/LogLib_wrap.cxx:495: undefined reference tologlib::close()’
collect2: ld returned 1 exit status

需要 登录 后方可回复, 如果你还没有账号你可以 注册 一个帐号。