目录如下:
-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退出状态
答案 0 :(得分:0)
请勿在{{1}}之后添加空格,并在构建CFLAGS
时尝试不指定文件名,即
cgo
(可选)将go build
添加到构建选项中,然后观察编译器是否正确地将相应的文件(INCLUDE和LIB)添加到其选项中,即
-x