golang在linux环境下自定义包(一招解决问题)

版权声明:本文为博主原创文章,未经博主允许不得转载。如若转载,请注明出处! https://blog.csdn.net/Homewm/article/details/85337485

由于是go语言新手,有些简单的问题处理起来有点困难。现在从go安装到运行详细地说起

关于go语言在linux环境下自定义包的问题困扰了我好大一会。

下面我就从前往后详细地说一下解决方法,一招解决问题。

(I)linux下解决,从go安装开始说起

命令安装比直接在先下载golang安装包解压安装更快更方便,当然命令直接安装的版本只有1.6,现在很多开源项目都支持更高的版本了,所以如果我们需要更高的版本,可以现在go官网上下载,手动安装,这里也就不再详细叙述了。

(1)下载安装go

$sudo apt-get install golang

(2)查看一下是否安装成功,显示如下证明安装成功

 (3)配置GOROOT和GOPATH,GROOT是go的安装的位置,GOPATH是开发工程存放的位置(也就是我们常说的workspace)。

关于GOPATH的设置方式,网上有两种设置方式,推荐第二种方式安装。分别如下:

单个用户配置:一种是在 ~/.bashrc文件末尾加上如下环境变量

$ vim ~/.bashrc

 然后将开发工程的目录添加到里面

然后重新加载环境变量到内存

$source ~/.bashrc

 多用户配置(推荐):另外一种方法是在/etc/profile文件中添加

vim /etc/profile # 文件末尾添加以下内容

 

重新加载 profile 文件,加载环境变量到内存

$source /etc/profile

 查看go版本

$go version

 

(II) 自定义包使用

自定义包使用,是在刚才的配置正确为前提下使用和处理的。

这里也有两种方法实现,看下下面的代码就知道了,这里参考博文https://blog.csdn.net/u010164190/article/details/80830941

1.demo.go代码
package main
//方式1:./pac为当前目录路径
import ("./pac")
 
//方式2:将pac.go拷贝到/usr/local/Cellar/go/1.8.3/libexec/src/pac系统目录下
//import ("pac")
 
func main() {
   pack.Printt("Hello")
}
 
2.在同级目录下创建pac目录,在pac目录下创建pac.go
package pack
import ("fmt")
func Printt(x string) {
	fmt.Printf(x + " Go World.\n")
}
 
3.测试运行
# go run demo.go

上面代码的重点在于两处:

(1)一个是demo.go和pack包在同一个文件夹下,然后在demo.go中调用pack的时候是import("./pac"),注意在import的时候是“./pac”而不是“pac”,pac是不行的,我尝试过。之前一直使用错误的地方也就在于此。

当然我们习惯性地,在工程下创建三个目录

其中src下存放源码,bin下存放编译的文件。

案例展示:下面就是我写的一个main.go文件,想调用gpool包

 

(2)另一个方法是,找到go的安装包,添加自己创建的包(这个不常用,也不是根本解决办法倒是真的,不建议这样使用,但是还是在这里说一下吧)。一般使用命令安装go的时候都是安装在/usr/local,或者/usr/lib中,我的就是在/usr/lib中,如下图所示,

找到继续展开找到src文件夹,然后将创建的包放到src下面就行了。当然不推荐这种做法啦

(III)关于windows下使用goland使用自定义包的问题

请参考我的另外一篇文章,里面说得很清晰了。博文链接:https://blog.csdn.net/Homewm/article/details/85208680

纯手工打,不喜勿喷,喜欢点个赞呗。

参考链接:

https://www.jianshu.com/p/c45f8cdca214

https://blog.csdn.net/u010164190/article/details/80830941

https://www.cnblogs.com/tinywan/p/6928300.html

https://blog.csdn.net/qq_15437667/article/details/80482035

猜你喜欢

转载自blog.csdn.net/Homewm/article/details/85337485
今日推荐