Как я могу запустить статическую библиотеку C++, созданную с помощью CMake, в Golang?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Как я могу запустить статическую библиотеку C++, созданную с помощью CMake, в Golang?

Сообщение Anonymous »

Я хочу использовать некоторые библиотеки C++ в Golang, поэтому я использовал CMake для создания и тестирования моей библиотеки C++. Однако, когда я пытаюсь использовать cgo для связывания и использования библиотеки, я постоянно получаю ошибку неопределенных ссылок.
Я пытался использовать SWIG, но не смог понять, как его правильно использовать, и также пробовал использовать оболочку C, и она отлично работала с программами C, но при использовании cgo я продолжал получать ту же ошибку с вызываемыми ею функциями C++.
Я использую CMake 3.27, Ubuntu 20.04 и Go 1.20.7
Мой код Golang:
package main

//#cgo CPPFLAGS: -I /home/omar/CMake_Projects/PROJECT_HEADER
//#cgo LDFLAGS: -L /home/omar/CMake_Projects/PROJECT_HEADER/build -l MyLibrary
//#include "cpp.h"
import (
"C"
)
import "fmt"

func main() {
a := C.int(9878)
b := C.int(4)
c := C.Adder(a, b)
fmt.Println(c)
}

Мой cpp.h:
#ifndef connect
#define connect
int Adder(int a, int b);
#endif

Мой add.cpp:
#include "ConnectionHeader.h"
#include
using namespace std;

int Adder(int a, int b) {
cout

Подробнее здесь: https://stackoverflow.com/questions/768 ... -in-golang
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»