一个项目 两个cgo依赖编译不通过

golang 项目有两个cgo 依赖,一个是依赖包自己搞的,一个是公司内部的库。 export CGO_LDFLAGS="-L$xxx_GO_SO_PATH -lxxx_go" go build main.go 如果用这种方法单独编译demo程序是没问题的,但是在工程中会影响到 另一个库的编译。 比如用 go build -n 将所有过程打印出来 CGO_LDFLAGS=-L/go/src/xxx" "-lxxx_go" "-g" "-O2" /usr/local/go/pkg/tool/linux_amd64/cgo -objdir $WORK/vendor/github.com/ethereum/go-ethereum/crypto/secp256k1/_obj/ -importpath vendor/github.com/ethereum/go-ethereum/crypto/secp256k1 -- -I $WORK/vendor/github.com/ethereum/go-ethereum/crypto/secp256k1/_obj/ -g -O2 -I/go/src/vendor/github.com/ethereum/go-ethereum/crypto/secp256k1/libsecp256k1 -I/go/src/vendor/github.com/ethereum/go-ethereum/crypto/secp256k1/libsecp256k1/src curve.go panic_cb.go secp256.go 多出来-lxxx_go 事实上编译这个源文件是不需要链接这个库的。这样编译会报如下错误 # vendor/github.com/ethereum/go-ethereum/crypto/secp256k1 go/src/qbus/libxxx_go.so:对‘Swig_DirectorQbusConsumerCallback_callback_deliveryMsg_xxx_f46fb9e702ff9493’未定义的引用 目前想到的思路就是如何将这个链接 -L去掉,还是根本没有影响错在了别的地方。 请各位大神帮看看 如果单独写demo测试是没有问题的(证明链接库是存在该方法的)
已邀请:
1.golang 编译有类似c那样的自己写Cmake编译,这样可以调整链接参数
2.第一条思路是否正确
最终解决是?

要回复问题请先登录注册