Что такое переменная _cgo_a?
Я пытаюсь связать статическую библиотеку c ++.
greeter.cpp
#include "greeter.h"
#include <iostream>
void
greet()
{
std::cout << "Greetings\n";
}
greeter.h
#ifndef GREETER_H_
#define GREETER_H_
#ifdef __cplusplus
extern "C" {
#endif
void
greet();
#ifdef __cplusplus
}
#endif
#endif
Я скомпилировал вышесказанное в статическую библиотеку примерно так:
$ g++ -c greeter.cpp
$ ar vfx greeter.o -o libgreeter.a
и вот мой main.go
package main
// #cgo CFLAGS: -g -Wall
// #cgo LDFLAGS: -L. -lgreeter
// #include "greeter.h"
import "C"
func main() {
C.greet()
}
Тогда, когда я сделаю go build
вот что я получаю:
# error
cgo-gcc-prolog: In function ‘_cgo_261f55e693f4_Cfunc_greet’:
cgo-gcc-prolog:46:49: warning: unused variable ‘_cgo_a’ [-Wunused-variable]
Моя версия go: go version go1.12.5 linux/amd64
РЕДАКТИРОВАТЬ: Если я удаляю -Wall
из CFLAGS, он компилируется нормально.И все же, что такое переменная _cgo_a
и почему она выдает ошибку?