Я использую это:
// 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 состояние выхода