猿问

新手关于go install 的两个疑问怎么回事哈啊?

goinstall+文件夹名
情况1:倘若文件夹里只有一个go文件。如果该文件是普通包文件,执行goinstall会在pkg文件夹里生成相应的.a文件;如果该文件是main文件,执行goinstall会在bin目录下生成相应的.exe文件。问题:为什么用goistall编译不同类型的文件会产生不同的结果
情况2:倘若文件夹里有多个go文件,执行goinstall又是个什么情况。
刚才试了一下,如果文件夹里有多个go文件,那么这几个go文件必须有相同的package才能编译通过。那么问题来了,编译成功后生成的文件夹名.a文件会包含所有go文件的编译结果吗?
POPMUISE
浏览 288回答 2
2回答

浮云间

第一个问题:不是main文件,是如果有main包及main函数的时候,也就是有执行主入口的时候,go认为你当前要编译一个可执行文件,所以你会看到exe.反之则没有exe,a文件是编译产生的静态连接文件,比如一个项目下有一个main包,里面引用了一个第三方包,那第三方包会先被编译成a文件,然后链着这个a文件再去编译main包成为可执行文件。第二个文件:不清楚。。。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答