Go源码文件与命令

Go源码文件

文件类型

  1. 命令源码文件 : 声明自己属于main包且包含main函数的源码文件,一个包里边不要有多个命令源码文件,虽然用go install ,go run单独执行命令源码文件没有问题,但go install ,go run包含命令源码文件的文件夹时会出错。
  2. 库源码文件: 不具备命令源码文件两个特征的源码文件,也就是存在与某个包的普通源码文件。库源码文件安装后,相应的归档文件(*.a)被存放在当前工作区的pkg目录下。
  3. 测试源码文件:名称以_test.go为后缀的源码文件,且必须包含Test或Beanchmark为名称前缀的函数。
    //功能测试
    func Test****(t *testing.T){
    
    }
    
    //性能测试
    func Beanchmark(b *testing.B){
    
    }

常用命令

命令 说明
go build
go get
go install
go run 只能执行命令源码文件。
go help 查看常用命令
参数 说明
-a 用于强制重新编译所有涉及的Go代码包(包括GO标准库中的代码包),几十他们已经是最新的了。该标记可以让我们有机会通过改动底层代码包做一些实验
-n 使命令打印执行过程中用到的所有命令,而不去真正执行他们。如果只是想查看或验证命令的执行过程,又不想改变任何东西,使用这个参数最合适。
-race 用于检测并报告指定Go程序中的数据竞争问题。
-v 用于打印命令执行过程中涉及的代码包。这一定包括我们指定的目标代码包,有时还包括该代码包直接或间接依赖的那些代码包。这会让我们看到那些代码包被执行过。
-work 用于打印命令执行时生成和使用的临时工作目录名字,且命令执行完后不删除它。如果不添加此标记,临时工作目录会在命令执行完后被删除。
-x 打印命令执行过程中用到的所有命令,并同时执行他们。

go run

  1. 在临时工作目录下生成了归档文件和可执行文件
  2. 如果使用go run -work保留了临时工作目录,再次执行go run时,如果命令源码文件没有变化,就不会再执行compile.exe

go build

主要用于测试编译。编译过程中,如果有必要会同时编译与之关联的包

  1. 如果是普通包,执行go build不会产生任何文件
  2. 如果是mian包,会在mian包下生成可执行文件。使用go build -o 路径,可在指定目录下生成可执行文件。
  3. go build会编译目录下所有的go文件,go build go文件可以只编译某个文件。
  4. 通过go build -o 可执行文件名 方式生成指定名字的可执行文件。默认情况下是package名(非main包)或者文件夹名(main包)
  5. go build 会忽略以_或.开头的go文件

原文地址:https://www.cnblogs.com/henryno12/p/12301799.html

时间: 2024-10-08 13:29:57

Go源码文件与命令的相关文章

使用源码文件简单制作RPM包

实验环境: 实验的系统:Centos7.2_x86.64 源码包文件1:fastdfs-master 源码包文件2:libfastcommon-master 去github作者的站点克隆上面两个源码包文件 git clone https://github.com/happyfish100/fastdfs.git git clone https://github.com/happyfish100/libfastcommon.git 查看源码文件版本并修改文件名 -libfastcommon-mas

对threading模块源码文件的解读(不全)

# -*- coding: utf-8 -*- #python 27 #xiaodeng #对threading模块源码文件的解读(不全) import threading #类 #Thread() #构造方法 #threading.Thread() #__init__(self, group=None, target=None, name=None, args=(), kwargs=None, verbose=None) #group:保留为将来扩展时,可以类被实现 #target:要执行的方

如何将源码文件编译成字节码文件

[[email protected] ~]# cat 1.py # 要编译的源码文件 #!/usr/bin/python print 'Hello World' [[email protected] ~]# cat 2.py # 将 1.py 编译成字节代码 #!/usr/bin/python import py_compile py_compile.compile('1.py') [[email protected] ~]# python 2.py [[email protected] ~]#

[C/C++] 各种C/C++编译器对UTF-8源码文件的兼容性测试(VC、GCC、BCB)

在不同平台上开发C/C++程序时,为了避免源码文件乱码,得采用UTF-8编码来存储源码文件.但是很多编译器对UTF-8源码文件兼容性不佳,于是我做了一些测试,分析了最佳保存方案. 一.测试程序 为了测试编译器对UTF-8源码文件兼容性,我编写了这样的一个测试程序—— //#if _MSC_VER >= 1600 // VC2010 //#pragma execution_character_set("utf-8") //#endif #include <stdio.h>

C++ 多源码文件简单组织

C++ 多源码文件简单组织 基本上和C的是一样的,只不过C++的方法要在类中声明.看一个简单实例.ainimal.h  类里面对外公开的信息. 点击(此处)折叠或打开 #ifndef _ANIMAL_H__ #define _ANIMAL_H__ #include <iostream> using namespace std; class Animal{ private: string name; public: void print(void); Animal(string name){th

php扩展开发笔记(2)多个源码文件的配置和编译

我们在开发过程中,为了代码得可读性和易维护性,肯定是需要多个代码文件的,而不仅仅是通过 ext_skel 生成得骨架文件.这篇文章主要介绍下,多个代码文件的时候,我们需要注意什么,以及怎么做. 我的代码文件如下(slash为我的扩展名) // ext_skel 生成默认得模块相关的主要文件 php_slash.h // 头文件 slash.c // 源码文件 config.m4 // 编译的时候需要修改的文件 在这个默认生成的骨架文件里面,我们只要执行下面几步,就可以完成一个新的扩展了. 删除c

Android源码文件夹结构

Android 2.2 |-- Makefile |-- bionic               (bionic C库) |-- bootable            (启动引导相关代码) |-- build                 (存放系统编译规则及generic等基础开发包配置) |-- cts                    (Android兼容性測试套件标准) |-- dalvik                (dalvik JAVA虚拟机) |-- develop

Android 根据源码文件生成.jks的系统签名

系统那边给了platform.pk8,shared.x509.pem等文件,现需要转换成.jks文件方便Android studio中编译使用. 记录下如何操作生成.jks 在Android源码目录:android/build/target/product/security/ 找到签名文件"platform.pk8"和"platform.x509.pem" 签名工具目录:android/prebuilts/sdk/tools/lib 找到签名工具:signapk.j

TFS二次开发-基线文件管理器(3)-源码文件的读取

TFS登录成功后,就可以开始读取源码目录树了. 一般来说,我不建议将整个树全部读取出来,因为这里不光存有项目文件,还有项目源码.如果全部读取出会是非常大的一棵树.因此我建议只读出根目录,每一次点击打开一级子目录.这样找到自己需要选取的文件即可. 上一节中,我们已经登录完成. //获取选择的项目名称,这里是单项目,一次取pi[0]的名称 pi = tpp.SelectedProjects; ProjectURL = pi[0].Name; VersionControlServer version