为什么报告错误"未定义的引用`add2"当我使用cgo

时间:2017-06-22 08:15:34

标签: c go cgo

目录如下:
-inlcude
Test.h
-lib
libmytest.so
-src
test.go

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:错误:ld返回1退出状态

1 个答案:

答案 0 :(得分:0)

请勿在{{1​​}}之后添加空格,并在构建CFLAGS时尝试不指定文件名,即

cgo

(可选)将go build 添加到构建选项中,然后观察编译器是否正确地将相应的文件(INCLUDE和LIB)添加到其选项中,即

-x