我最近问了这个问题https://softwareengineering.stackexchange.com/questions/129076/go-instead-of-cc-with-cgo,得到了一些非常有趣的输入。但是我的问题有一个错误:我认为cgo也可以用来访问c ++代码,但这是不可能的。相反,您需要使用SWIG。
go常见问题解答说:“ cgo程序提供了“外部函数接口”的机制,以允许从Go代码安全地调用C库。SWIG将此功能扩展到了C ++库。”
我的问题: 是否可以使用SWIG + Go访问高级Q ++框架(例如QT)并提高生产力?我想使用Go作为一种“脚本语言”来利用c ++库。
你有去围棋的经验吗?有我要注意的陷阱吗?
更新/回答:我也在IRC上问过这个问题,我认为问题已经解决了:
SWIG是连接其他语言的c ++代码的一种非常简洁的方法。可悲的是,将c ++的类型匹配到类似go的东西可能非常复杂,并且在大多数情况下,您必须自己指定映射。这意味着SWIG是利用现有代码库重用已经编写的算法的好方法。但是,映射像Qt这样的库要花很多时间。注意,这肯定是可能的,但您不想这样做。
那些使用go进行GUI编程的人可能想要尝试go-gtk或wxWidgets的go版本。
翻过高山走不出你
皈依舞
相关分类