是否可以在cgo中混合一些C++代码?
我试过这个:
package main
/*
#include <iostream>
extern "C" void test(const char* str)
{
std::cout << str;
}
*/
// #cgo CFLAGS: -x c++
// #cgo LDFLAGS: -lstdc++
import "C"
func main() {
C.test(C.CString("Testing!!!"))
}
Run Code Online (Sandbox Code Playgroud)
但我得到这些错误:
error: 'char* CString(_GoString_)' cannot appear in a constant-exp
error: 'void test(const char*)' cannot appear in a constant-expres
error: invalid conversion from 'char* (*)(_GoString_)' to 'long long int' [-fpermissive]
error: invalid conversion from 'void (*)(const char*)' to 'long long int' [-fpermissive]
Run Code Online (Sandbox Code Playgroud)
我正在使用go1.0.2和MinGW-w64 4.7.1
Dar*_*tle 10
@ephemient在Go bug跟踪器中提供了此功能请求的链接.这又提供了一个链接回到如何在Go中使用C++?这里是Stack Overflow.那里有一个很好的讨论,但对我来说的好处是:
Go FAQ的链接(Do Go程序与C/C++程序链接?):
... cgo程序提供了"外部函数接口"的机制,允许从Go代码安全地调用C库.SWIG将此功能扩展到C++库.
Go的SWIG文档链接.
| 归档时间: |
|
| 查看次数: |
4673 次 |
| 最近记录: |