又遇到一个问题:
在include 第三方的.h的时候。
test.h":
#include<vector>
test.go":
//#include "test.h"
import "C"
fatal error: vector: No such file or directory
build时会报错提示找不到vector,google了一天,没找到合适的解决方式,想来请教下是否有方式可以直接get到c++ 的vector这些lib?
先感谢各位先进~
有疑问加站长微信联系(非本文作者)

不懂你为啥非要引用C++的东西, 难道go没有自己的替代品和解决方案么? 如果非要用那为啥要用go写直接用C++不就行了.
如果可以直接用C++的话 我也想直接用,公司交派的任务 只能硬试看看了,另外替代品的话,go目前还真没有,因为需要调用Qualcomm/MTK/Samsung的library,至少目前qualcomm只直接提供C/C++编译好的dll,所以并非我不想用C++ 😂
推荐你试试swig。http://www.swig.org/
直接让你搞cpp,如果没有人带,或者学习机会,直接跑路吧,全是坑。哈哈哈
都dll了,那还用啥C++。go直接就能搞dll啊。。
你似乎跑偏了. 用三方提供的C++编译出来的DLL你并不需要在go中引用C++的std库, 更不需要vector这种完全C++的东西. 因为你和DLL函数交互过程中, 传给它的参数和获取的返回值不可能是一个vector.
应该是这样说,在include 第三方的header file(里面定义了相关structure)的时候, 它里面include了 vector这种 C++的库,所以才想询问,不然的话就要额外将所有的定义都拉到go lang里面,并且要重写所有的struct变数定义。
我不清楚你这个header文件是哪里来的, 如果是lib文件生成的那么只能给C++使用, 所以你在定义中看到vector这种有语言特性的东西, 我觉得你不能直接使用这个header文件, 或者可以写个中间DLL做个转换变成go能识别的基本数据类型.
何必那么麻烦, 用gostl就可以了 https://github.com/liyue201/gostl