go install + 文件夹名
情况1:倘若文件夹里只有一个go文件。如果该文件是普通包文件,执行go install 会在pkg文件夹里生成相应的.a文件;如果该文件是main文件,执行go install会在bin目录下生成相应的.exe文件。
问题:为什么用go istall 编译不同类型的文件会产生不同的结果
情况2:倘若文件夹里有多个go文件,执行go install 又是个什么情况。
刚才试了一下,如果文件夹里有多个go文件,那么这几个go文件必须有相同的package 才能编译通过。那么问题来了,编译成功后生成的 文件夹名.a 文件会包含所有go文件的编译结果吗?
第一个问题:
不是main文件,是如果有main包及main函数的时候,也就是有执行主入口的时候,go认为你当前要编译一个可执行文件,所以你会看到exe. 反之则没有exe,a文件是编译产生的静态连接文件,比如一个项目下有一个main包,里面引用了一个第三方包,那第三方包会先被编译成a文件,然后链着这个a文件再去编译main包成为可执行文件。
第二个文件:不清楚。。。