为什么报告错误 “未定义参考`ADD2” 当我用CGO

问题描述:

该目录如下:
-inlcude
Test.h
-lib
libmytest.so
-src
test.go
为什么报告错误 “未定义参考`ADD2” 当我用CGO

的test.go代码如下:

package main 

/* 
#cgo CFLAGS : -I ../include 
#cgo LDFLAGS: -L ../lib -lmytest 
#include "Test.h" 
*/ 
import "C" 
func main() { 
    C.add2(10, 10) 
} 

当我使用go build test.go时,控制台报告:#command-line-arguments /tmp/go-build168903458/command-line-arguments/_obj/test.cgo2.o:函数_cgo_9efddd4c1a4b_Cfunc_add2': rocketmq-bridge/src/cgo-gcc-prolog:42: undefined reference to add2' collect2:error:ld返回1退出状态

不要CFLAGS后添加空间,并尽量不指定文件名建筑cgo时,即

go build 

可以选择添加-x的编译选项,然后观察编译器是否正确添加相应的文件(INCLUDE和LIB)到它的选项,即

go build -x