Avatar ·

Como usar código C++ em Go: chamando funções e classes de C++ através de C

Olá a todos! Escrevo em Go há cerca de um ano e agora me deparei com uma tarefa que me deixou perplexo. Tenho uma grande biblioteca em C++ que implementa uma lógica complexa de processamento de imagens. Quero usá-la no meu projeto Go, mas não sei como organizar corretamente a chamada de funções C++ a partir do Go. Li que o Go pode interagir com C através do cgo, mas C++ é uma história completamente diferente. Tentei escrever um exemplo simples: existe uma classe ImageProcessor em C++ com um método process() que recebe um array de bytes e retorna um resultado. Criei um wrapper em C, mas na linkagem ocorrem erros "undefined reference". Aqui está um exemplo do meu código: ```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) } ``` E o arquivo de cabeçalho C++: ```cpp // image_processor.h class ImageProcessor { public: int process(unsigned