为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
湖上湖 2023-06-26 16:24:06
什么是“_cgo_a”变量?我正在尝试链接 C++ 静态库。迎宾员.cpp#include "greeter.h"#include <iostream>voidgreet(){    std::cout << "Greetings\n";}迎宾员.h#ifndef GREETER_H_#define GREETER_H_#ifdef __cplusplusextern "C" {#endifvoidgreet();#ifdef __cplusplus}#endif#endif我将上面的内容编译成静态库,如下所示:$ g++ -c greeter.cpp$ ar vfx greeter.o -o libgreeter.a这是我的 main.gopackage main// #cgo CFLAGS: -g -Wall// #cgo LDFLAGS: -L. -lgreeter// #include "greeter.h"import "C"func main() {    C.greet()}然后当我go build这样做时,我得到的就是:# errorcgo-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以及为什么它会给我一个错误?
查看完整描述

1 回答

?
阿波罗的战车

TA贡献1862条经验 获得超6个赞

不要-Wall在 cgo CFLAGS 中使用。这是 Go 中的一个普遍问题。

查看完整回答
反对 回复 2023-06-26
  • 1 回答
  • 0 关注
  • 87 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信