Avatar ·

如何在Go中使用C++代码:通过C调用C++函数和类

大家好!我写Go已经大约一年了,现在遇到了一个让我陷入困境的任务。我有一个用C++编写的大型库,实现了复杂的图像处理逻辑。我想在Go项目中使用它,但不知道如何正确地从Go调用C++函数。 我了解到Go可以通过cgo与C交互,但C++完全是另一回事。我尝试写了一个简单的例子:有一个C++的ImageProcessor类,其中包含process()方法,该方法接收字节数组并返回结果。我创建了一个C包装器,但在链接时出现了“undefined reference”错误。以下是我的代码示例: ```go package main /* #include "image_processor.h" */ import "C" import "fmt" func main() { data := []byte{1, 2, 3, 4, 5} result := C.process_image(&data[0], C.int(len(data))) fmt.Println(result) } ``` 以及C++头文件: ```cpp // image_processor.h class ImageProcessor { public: int process(unsigned