Go项目部署远程服务器报错《package xxx is not in std》问题排查与解决(全网疑难版)

问题描述

golang sdk版本:1.22

最近在部署本地Go项目到远程服务器时遇到了这个报错:package xxx is not in std

问题分析

这个报错的原因是Go程序在编译时,找不到依赖的包,然后去自己的标准库下面找,还是找不到所以报了这个错误。

这些罗列一些可能导致这个问题的原因以及解决办法:
1.go module配置问题,如果开启了go module,会根据go.mod文件中的配置去读取项目中的依赖项。如果没有开启则默认去${GoPath}目录下查找。开启go module的命令:

// 如果设置时遇到报错: warning: go env -w GO111MODULE=... does not override conflicting OS environment variable
// 说明是环境变量冲突了,使用unset命令删除环境变量再重新设置: unset GO111MODULE
go env -w GO111MODULE=on

2.包名或者路径对不上,比如go.mod文件中module名称和go源文件中的包名不一致,尤其是导入项目自身的包时,需要以go.mod文件中的module名称开头,不过现在的IDE一般都能检测到这种情况,所以也比较少见。

不过,在我的case里,以上两个方法试了之后依旧还是报错。

问题解决

最后终于发现是因为没有对应的go文件导致的!

因为是使用zip命令直接打包本地源代码文件,然后上传到服务器解压后再编译。
打包命令如下

zip xxx.zip ./

因为没有加-r参数,遇到文件夹就直接跳过了,导致打成的zip包缺失了所有子目录下的go文件,编译的时候提示找不到包。

使用正确的打包命令,将子目录下的go文件都打进去即可:

zip -r xxx.zip ./

以上,问题解决。非常奇葩和低级的一个错误导致的问题,全网可能就我一个人遇到了吧[汗]

(cpg) aoteq@aoteq-OMEN-Laptop-15-ek0xxx:~/myur_ws$ catkin_make -j1 Base path: /home/aoteq/myur_ws Source space: /home/aoteq/myur_ws/src Build space: /home/aoteq/myur_ws/build Devel space: /home/aoteq/myur_ws/devel Install space: /home/aoteq/myur_ws/install #### #### Running command: "make cmake_check_build_system" in "/home/aoteq/myur_ws/build" #### #### #### Running command: "make -j1" in "/home/aoteq/myur_ws/build" #### [ 0%] Built target _ur_msgs_generate_messages_check_deps_SetIO [ 0%] Built target _ur_msgs_generate_messages_check_deps_RobotStateRTMsg [ 0%] Built target _ur_msgs_generate_messages_check_deps_IOStates [ 0%] Built target _ur_msgs_generate_messages_check_deps_Digital [ 0%] Built target _ur_msgs_generate_messages_check_deps_Analog [ 0%] Built target _ur_msgs_generate_messages_check_deps_RobotModeDataMsg [ 0%] Built target _ur_msgs_generate_messages_check_deps_MasterboardDataMsg [ 0%] Built target _ur_msgs_generate_messages_check_deps_ToolDataMsg [ 0%] Built target _ur_msgs_generate_messages_check_deps_SetSpeedSliderFraction [ 0%] Built target std_msgs_generate_messages_nodejs [ 0%] Built target _ur_msgs_generate_messages_check_deps_SetPayload [ 6%] Built target ur_msgs_generate_messages_nodejs [ 6%] Built target std_msgs_generate_messages_eus [ 13%] Built target ur_msgs_generate_messages_eus [ 13%] Built target std_msgs_generate_messages_cpp [ 20%] Built target ur_msgs_generate_messages_cpp [ 20%] Built target std_msgs_generate_messages_py [ 28%] Built target ur_msgs_generate_messages_py [ 28%] Built target std_msgs_generate_messages_lisp [ 34%] Built target ur_msgs_generate_messages_lisp [ 34%] Built target ur_msgs_generate_messages [ 34%] Built target _robotiq_85_msgs_generate_messages_check_deps_GripperStat [ 34%] Built target _robotiq_85_msgs_generate_messages_check_deps_GripperCmd [ 36%] Built target robotiq_85_msgs_generate_messages_lisp [ 37%] Built target robotiq_85_msgs_generate_messages_cpp [ 38%] Built target robotiq_85_msgs_g
最新发布
03-11
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值