zoukankan      html  css  js  c++  java
  • GO language

    看到有人说GO是未来10年的主流了,不论是速度迅速接近于C,还是语法简洁接近于C,结果尽然还是编译型的,不需要虚拟机,生成程序已经是本地字节码。

    得,我不淡定了,这个不学,枉为程序员啊。

    今天,讲讲linux平台,GO开发环境搭建。

    一. 下载包
    https://www.golangtc.com/static/go/1.9/go1.9.linux-amd64.tar.gz
    哈哈,
    https://www.golangtc.com/static/go/1.9/go1.9.windows-amd64.msi
    交代一下,windows 上所有浏览器都不能下载这个源;CentOS 上也
    不能下载这个源;但是Ubuntn 虚拟机上能下。哈哈,所以在此把
    windows 上的msi 安装包也一并下载下来了。
    二. 安装包
    1. tar -xzf go1.9.linux-amd64.tar.gz -C /usr/local
    2. vim /etc/profile
    export GOROOT=/usr/local/go
    export PATH=$GOROOT/bin:$PATH
    export GOPATH=/root/gopkg
    3. 刷新环境变量
    source /etc/profile
    4. 确认是否成功 go version
    /usr/local/go/bin/go: cannot execute binary file
    哈哈,这个是操作系统位数出问题,我们安装的是64 位,
    CentOS 是32 位
    怎么办,重办[下载32 位GO]

    三. DEMO

    因为现在做C的缘故,我的例子是这样

    1. C 静态库

    // foo.h
    int count;
    void foo();

    //foo.c
    #include <stdio.h>
    #include <stdlib.h>
    #include "foo.h"
    int count = 6;

    void foo()
    {
    printf("I am foo! ");
    }

    gcc -o foo.o -c foo.c
    arrv libfoo.a foo.o

    //test-c-go.go

    package main
    // #cgo LDFLAGS: -L ./ -lfoo
    // #include "foo.h"
    import "C"
    import "fmt"
    func main() {
    fmt.Println(C.count)
    C.foo()
    }

    go build test-c-go-1.go

    ./test-c-go-1
    6
    I am foo!

    Finally:

    这叫从C跨到GO

    哈哈,GO GO GO, 你现在有基础了,开GO吧:)

  • 相关阅读:
    java
    java
    java
    js
    java
    异常之异常处理
    面向对象之元类
    面向对象之内置方法
    面向对象之反射
    面向对象之类方法与静态方法
  • 原文地址:https://www.cnblogs.com/woodzcl/p/7442941.html
Copyright © 2011-2022 走看看