警告:未使用的变量“_cgo_a”

什么是“_cgo_a”变量?


我正在尝试链接 C++ 静态库。


迎宾员.cpp


#include "greeter.h"

#include <iostream>


void

greet()

{

    std::cout << "Greetings\n";

}

迎宾员.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以及为什么它会给我一个错误?


湖上湖
浏览 133回答 1
1回答

阿波罗的战车

不要-Wall在 cgo CFLAGS 中使用。这是 Go 中的一个普遍问题。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go