c ++ доступ extern в cgo - PullRequest
       8

c ++ доступ extern в cgo

0 голосов
/ 22 февраля 2020

Я использую это:

// foo.h
#ifdef __cplusplus
extern "C" {
#endif
  void foo();
#ifdef __cplusplus
}
#endif

//foo.cc
void foo() {
  cout << "Hello World" << endl;
}

для связи между моим cgo процессом и процессом c ++. Я хочу получить доступ к функции golang из моей функции c ++ foo. Мой go выглядит так:

// #include "foo.h"
import "C"

func golangPart() {
  //do stuff in go
}

func main() {
  C.foo()
}

Я хочу получить доступ к golangPart() из c ++. Я попытался это:

//foo.h

void golangPart();

#ifdef __cplusplus
extern "C" {
#endif
  void foo();
#ifdef __cplusplus
}
#endif

//foo.cc

void foo() {
  golangPart();
}

Но это дало мне эту ошибку:

. / Foo. cc: 42: неопределенная ссылка на `golangPart () '

collect2.exe: ошибка: ld вернул 1 состояние выхода

...