go的一些坑


最近在做go的项目编译的时候总是报包重复引用或者版本不同的错误

1.go语言本身的坑:go的import package和java的import package不同

一个工程引用了另一个工程时要注意使用同一个vender,即使用公共的库,不可两个工程分别有自己的vender,即把vender放到两个project的同一级目录中。

如:project1中有个方法GetLog()返回log4go的对象
project2中引用project1中的方法获取log4go对象,不可用自身的vender中的log4go库接收该lo4go对象,会报package type不同,因为一个是get返回的是project1/vender/log4go对象,而接收的是用/project2/vender/log4go。

2.插件.so的坑

agent和plugin这2个工程如果引用了相同的一个lib,则agent和plugin编译的时候一定要在同一个环境下编译,否则会报版本冲突,问题应该类似1所提到的。
如果想让agent和plugin分别在任何环境下编译都不回报错,则agent不要跟plugin有任何公共的引用,也就是agent和plugin的调用仅仅通过.so对外暴露的函数,agent通过opean来调用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值