go学习之路--hello world

linux上go编译器下载:yum install go -y

go:hello.go

package main

import "fmt"
/* { 不能独立一行,只能跟随在函数等后面 */
func main(){
    
    	
    fmt.Println("hello,world")
}

运行:go run hello.go
编译:go build hello.go
编译体积:2M
去掉符号体积为1.4M:strip -s hello


c++: hello.cpp

#include <iostream>

int main()
{
    
    
std::cout << "hello,world" << std::endl;
return 0;
}

动态编译体积:8K

需要动态库如下:

[root@jn go]# ldd a.out
        linux-vdso.so.1 =>  (0x00007ffd87d78000)
        libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007f1f793b5000)
        libm.so.6 => /lib64/libm.so.6 (0x00007f1f790b3000)
        libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f1f78e9d000)
        libc.so.6 => /lib64/libc.so.6 (0x00007f1f78acf000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f1f796bf000)
[root@jn go]# 

静态编译体积:5.5M
去掉符号体积为1.3M:strip -s a.out


结论:
go语言使用静态编译,初衷是为了避免库依赖,相比C++静态编译,体积方面相差不多

猜你喜欢

转载自blog.csdn.net/weixin_44328568/article/details/119357623