• [问题求助] 求个 go-fastdfs 的arm版本
    go-fastdfs
  • [分享交流] xmake v2.3.6 发布, 新增 fortran 编译支持
    文章转载自 OSCHINA 社区 [http://www.oschina.net]这个版本重点对其他语言的支持做了一些改进,比如新增了fortran的编译支持,zig语言的实验性支持,另外对golang/dlang增加了第三方依赖包支持以及交叉编译支持。虽然,xmake重点关注c/c++的构建支持,但是其他语言的支持xmake也会不定期做一些改进,其主要目的并不是替代它们官方自身的构建系统,仅仅只是为了支持与c/c++的混合编译,更好的为c/c++项目服务, 毕竟有些c/c++项目中,还是会偶尔调用其他语言的代码接口,比如与cuda, dlang, objc,swift, asm等语言的混合调用,所以xmake还是会对他们做一些基础性的编译支持。另外,关于c/c++方面,我们也对vs预览版中新的/sourceDependencies xxx.json输出的头文件依赖格式也做了支持(这对于多语言下,头文件依赖检测会更加的可靠稳定)。项目源码官方文档新特性介绍Fortran语言编译支持这个版本开始,我们已经完全支持使用gfortran编译器来编译fortran项目,我们可以通过下面的命令,快速创建一个基于fortran的空工程:$ xmake create -l fortran -t console test它的xmake.lua内容如下:add_rules("mode.debug", "mode.release")target("test")     set_kind("binary")     add_files("src/*.f90")更多代码例子可以到这里查看:Fortran ExamplesZig语言实验性支持注:目前这个语言xmake还在试验性支持阶段,还很不完善,比如:windows上不支持,linux/macOS下动态库编译还不支持,请自行评估使用。我们可以通过下面的配置方式,尝试性体验下,至少linux/macOS下console和static library程序还是可以跑的。add_rules("mode.debug", "mode.release")target("test")     set_kind("binary")     add_files("src/*.zig")至于为啥windows不支持呢,详情见我之前提给zig的issues,#5825而动态库不支持,也是因为我躺了一些坑(zig生成的动态库会自动追加.0.0.0),详情见:issue 5827另外还躺了下其他坑,个人感觉坑有点多,所以我暂时还是试验阶段,等过段时间再看看。更多例子见:Zig ExamplesGo依赖包和交叉编译支持新版本xmake对go构建支持继续做了一些改进,比如对go的交叉编译也进行了支持,例如我们可以在macOS和linux上编译windows程序:$ xmake f -p windows -a x86另外,新版本对go的第三方依赖包管理也进行了初步支持:add_rules("mode.debug", "mode.release")add_requires("go::github.com/sirupsen/logrus", {alias = "logrus"})add_requires("go::golang.org/x/sys/internal/unsafeheader", {alias = "unsafeheader"})if is_plat("windows") then     add_requires("go::golang.org/x/sys/windows", {alias = "syshost"})else     add_requires("go::golang.org/x/sys/unix", {alias = "syshost"})endtarget("test")     set_kind("binary")     add_files("src/*.go")     add_packages("logrus", "syshost", "unsafeheader")不过还有一些不完善的地方,比如目前必须手动配置所有级联依赖包,会稍微繁琐些,后续有待改进。更多例子见:Go ExamplesDlang/Dub依赖包支持xmake对dlang的dub包管理也进行了支持,可以快速集成dlang的第三方依赖包:add_rules("mode.debug", "mode.release")add_requires("dub::log 0.4.3", {alias = "log"})add_requires("dub::dateparser", {alias = "dateparser"})add_requires("dub::emsi_containers", {alias = "emsi_containers"})add_requires("dub::stdx-allocator", {alias = "stdx-allocator"})add_requires("dub::mir-core", {alias = "mir-core"})target("test")     set_kind("binary")     add_files("src/*.d")     add_packages("log", "dateparser", "emsi_containers", "stdx-allocator", "mir-core")cl.exe新的头文件依赖文件支持msvc的头文件依赖通常需要解析/showIncludes的输出内容,提取里面的includes文件列表来处理依赖编译问题,但是呢,cl.exe对这个的输出做的很不好,includes信息和编译输出是混在一起的。对构建工具处理依赖解析非常不友好,尤其是多语言环境下,如何判断是includes,需要通过前置的Note: including file: 字符串来判断提取,但中文下,又是注意: 包含文件: , 如果换成日语环境,又是日文的前缀字符串,编码格式问题、硬编码问题导致解析处理上,总归不是很完美。关于这一点,最新的vs2019预览版中,微软终于对齐做了改进,通过新的/sourceDependencies xxx.json编译选项,可以更好的输出includes依赖信息,方便多语言环境下的解析提取。另外,这个新选项的输出是独立到单独的json文件中去的,终于不是跟编译输出混一起了,也终于不用痛苦地解析分离编译错误、警告信息、includes列表信息了。输出内容大概长这样:{     "Version": "1.0",     "Data": {         "Source": "z:\\personal\\tbox\\src\\tbox\\tbox.c",         "Includes": [             "z:\\personal\\tbox\\src\\tbox\\tbox.h",             "z:\\personal\\tbox\\src\\tbox\\prefix.h",             "z:\\personal\\tbox\\src\\tbox\\prefix\\prefix.h",             "z:\\personal\\tbox\\src\\tbox\\prefix\\config.h",             "z:\\personal\\tbox\\src\\tbox\\config.h",             ...而新版本中,xmake通过新增内置的core.base.json模块处理json解析,很方便地对新的头文件依赖数据进行解析和支持,优先使用此模式(如果cl是新版本支持的话,老版本cl还是使用/showIncludes)。Xcode插件生成支持目前,我们还没有时间去自己实现xcode工程的生成,但不代表不支持,因为xmake支持生成cmakelists.txt文件,而cmake是支持xcode工程文件生成的,在官方还没有实现之前, 我们也可以通过cmake变相支持它,xmake会自动内部调用cmake中转下生成结果,对用户而言使用上没啥区别,只需要确保cmake已经安装即可:$ xmake project -k xcode!> 等之后有时间,我们会重新自己实现各更加完善的xcode输出插件,也欢迎大家帮忙贡献。xmake-vscode插件intellisense支持近期,我们也更新了下xmake-vscode插件,通过自动生成compile_commands.json到当前项目的.vscode目录下,然后我们只需要配置.vscode/c_cpp_properties.json在里面关联上这个.vscode/compile_commands.json路径 就能实现intellisense自动提示,同步xmake.lua里面的includedirs等配置信息。至于,具体怎么生成c_cpp_properties,官方文档里面有详细说明:https://code.visualstudio.com/docs/cpp/configure-intellisense-crosscompilation里面的主要配置项:  "configurations": [     {      "compileCommands": ".vscode/compile_commands.json",     }   ],更新内容新特性添加xcode工程生成器插件,xmake project -k cmake (当前采用cmake生成)#870: 支持gfortran编译器#887: 支持zig编译器#893: 添加json模块#898: 改进golang项目构建,支持交叉编译#275: 支持go包管理器去集成第三方go依赖包#581: 支持dub包管理器去集成第三方dlang依赖包改进#868: 支持新的cl.exe的头文件依赖输出文件格式,/sourceDependencies xxx.json#902: 改进交叉编译工具链
  • [问题求助] Mind Studio go to declaration implementation ctrl+鼠标 跳转指定的文件失效!!
    按照官网的步骤进行的MindStudio的安装和环境配置,然后跑了一些官方的样例发现在看c++代码的时候直接使用MindStudio没有跳转到定义这些方法的.h文件的位置,这样的话查看代码就和txt看代码没有太大的区别了,所以不知道是不是自己一些变量没有设置正确还是MindStudio本身就没有这个功能.望各位大佬或者Altas的开发者们能够提供帮助!!!非常感谢!!!
  • go依赖应该怎么安装?
    我想安装gin按https://support.huaweicloud.com/usermanual-cloudide/go_get.html操作,但不行。
  • 使用go语言:MRS安全集群使用sarama连接Kafka报错
    MRS日志如下:May 27 09:47:40 node-master2PcvL krb5kdc[12479](info): TGS_REQ (3 etypes {18 17 23}) 192.168.16.211: LOOKING_UP_SERVER: authtime 0,  admin@4330C96C_A232_4DC5_B805_5CC19312339F.COM for kafka/192.168.16.108@4330C96C_A232_4DC5_B805_5CC19312339F.COM, Server not found in Kerberos database看起来应该是这个不对:kafka/192.168.16.108@4330C96C_A232_4DC5_B805_5CC19312339F.COM这个主机IP地址是不是不对,怎么修改?有没有go语言的样例?
  • [行业动态] 转载:现代编程语言大 PK,2020 年开发者关心的七大编程语言!(上篇)
    转自:CSDN         作者 :Md Kamaruzzaman,软件架构师原文地址:https://blog.csdn.net/FL63Zv9Zou86950w/article/details/104890017如果我们把人类文明想象成汽车的话,那么软件开发行业就相当于汽车的引擎,而编程语言就像引擎的燃料。作为一名开发者,今年你应该学习哪种编程语言呢?学习一种新的编程语言无疑是时间、精力和智力上的巨大投资, 但是学习一种新的编程语言可以提升你的软件开发技术力,促进你的职业发展。在这里,我将献上一份现代编程语言的列表,这些语言不仅有助于提高你的生产力,而且还可以促进你的职业发展,并让你成长为更优秀的开发人员。这份列表还涵盖了非常广泛的领域:系统编程、应用程序开发、Web开发、科学计算等。什么是现代编程语言?“现代编程语言”这个说法本身就很含糊。许多人认为Python和JavaScript等语言是现代编程语言,还认为Java是一种古老的编程语言。实际上,这几种语言大约在同一时间出现:1995年。大多数主流编程语言是上个世纪开发的:七十年代(如C)、八十年代(如C ++)、九十年代(如Java、Python、JavaScript)。这些语言在设计上并没有考虑现代软件开发生态系统:多核CPU、GPU、快速的互联网、移动设备、容器和云等。尽管许多语言中的许多功能都已进行一些改进,如并发等,而且在不断调整自己以适应时代,但它们依然保留了向后兼容性,无法抛弃那些过时的旧功能。在这方面,Python就做得很好(某种意义上也未必是好事),Python 2和Python 3两者之间有明确的分界线。很多语言常常会为解决同一个问题提供十余种的方法,同时又没有顾及到开发人员的感受。根据StackOverflow的开发人员调查,大多数旧时的主流编程语言在“最可怕的语言”排名都名列前茅:如果非要在新旧编程语言之间划个界限的话,那么应该是2007年6月29日,也就是第一台iPhone发行的时候。在这之后,编程语言界发生了很大变化。因此,在本文的列表中,我只考虑2007年以后的编程语言。为什么要学习新语言?首先,现代编程语言充分利用现代计算机硬件(多核CPU、GPU、TPU)、移动设备、大量数据、高速互联网、容器和云的优势。大多数现代编程语言会关注开发人员的体验,比如:简洁明了的代码(减少样板代码)内置的并发支持空指针安全类型推断简洁的功能集降低学习难度融合所有编程范例的最佳功能本文列表的许多编程语言都带有革命性地变化,并将永久地改变软件行业。一些已成为主流编程语言,还有一些则有望取得突破。因此选择这些语言作为第二种编程语言是明智的做法。Rust一直以来,系统编程语言环境主要由靠近硬件的语言(如C、C ++等)主导。尽管它们可以完全控制程序和硬件,但是它们缺乏内存安全性。即使它们支持并发,使用C/C ++编写并发程序也很困难,因为没有并发安全性。还有一些流行的编程语言是解释性语言,例如Java、Python、Haskell。这些语言具备安全性,但需要庞大的运行时或虚拟机。由于它们的运行时间长,因此Java等语言不适合于系统编程。许多人曾尝试将C/C ++的功能与Java、Haskell的安全性相结合。然而,Rust才是第一个成功实现了这一点的编程语言。Graydon Hoare在业余项目中开发出了Rust,他的灵感来自研究编程语言Cyclone。Rust是开源的,由Mozilla与许多其他公司和社区一起领导这门语言的开发。Rust于2015年首次发布,并很快引起了社区的关注。主要特征:通过所有权和借用概念提供内存安全和并发安全。内存安全和并发安全在编译时确保,即如果程序代码可以编译,那么内存既安全又没有数据竞争。这是Rust最吸引人的功能。它还提供了Haskell中元编程的表现力。凭借不可变的数据结构和功能编程功能,Rust提供了功能并发和数据并发。Rust的速度非常快,纯Rust的性能甚至优于纯C。在没有运行时的情况下,Rust可以完全控制现代硬件(TPU、GPU、多核CPU)。Rust具有LLVM支持。因此,Rust提供一流的与WebAssembly的互操作性,而且Web代码也非常快。流行度:自2015年首次亮相以来,Rust已被开发人员广泛接受,并在StackOverflow开发人员调查中连续四年(2016、2017、2018、2019)被评选为最受欢迎的语言:根据GitHub Octoverse的调查,Rust是运行速度第二快的语言,仅次于Dart:对比Rust提供的功能集,我们就会明白为什么微软、亚马逊、Google等科技巨头相继宣布投资Rust作为一种长期的系统编程语言。根据Google统计的趋势,在过去的5年中,Rust的热度每年都在增加。主要用途:系统编程Serverless 计算商业应用主要竞争对手:CC++GoSwiftGo在本世纪初,Google面临两个扩展问题:开发扩展和应用程序扩展。开发扩展问题指的是他们不能仅通过投入开发人员的方式来添加更多功能。应用程序扩展问题则指他们无法开发出一款能够扩展到Google级别的计算机集群的应用程序。所以在2007年左右,Google创建了一种新的编程语言,用于解决这两个扩展问题。两位才华横溢的Google软件工程师Rob Pike(UTF-8)和Ken Thompson(UNIX OS)创建了一种新语言。2012年,Google正式发布了第一版的Go编程语言。Go是一种系统编程语言,但与Rust不同,它还具有Runtime和垃圾收集器(几兆字节)。但是与Java或Python不同,这个Runtime包含了生成的代码。最后,Go生成了一个本地的二进制代码,可以在没有附加依赖项或运行时的情况下在计算机中运行。主要特征:Go具有一流的并发支持。Go不通过线程和锁提供“共享内存”并发性,因为编程难度太大。相反,它提供了基于CSP的消息传递并发性(基于Tony Hoare的论文)。Go使用“ Goroutine”(轻量级绿色线程)和“ Channel”进行消息传递。Go最大的杀手级功能是:简单,它是最简单的系统编程语言。新手软件开发人员只需几天就可以编写高效的代码,就像Python一样。有些大规模的云原生项目(如Kubernetes、Docker)都是用Go编写的。Go还内置了垃圾收集器,这意味着开发人员无需担心C/C++中的内存管理问题。Google投入了大量资金打造Go。因此Go拥有大量的工具支持。新手Go开发人员拥有大量的工具生态系统。一般,开发人员80%的时间都花在了维护现有代码上,用于编写新代码的时间只占20%。由于其简单性,Go在语言维护方面表现出色。如今,Go在业务应用程序中大量使用。流行度:Go一问世就受到了软件开发社区热烈的欢迎。2009年-2018年,Go一直在TIOBE编程语言排行榜上徘徊。Go的成功为Rust等新一代编程语言铺平了道路。如今,Go已是主流编程语言。最近,Go团队宣布了有关“Go 2”的消息,这门编程语言的发展会更加稳固。几乎在所有的流行编程语言排行榜中,Go的排名都很高,已超过许多现有的语言。自2019年12月以来,在TIOBE指数排名中,Go名列第15位:根据StackOverFlow的调查,十大最受喜爱的编程语言中,Go也位列其中:此外,根据GitHub的数据,Go也是十**展最迅速的语言之一:Google趋势显示,在过去的5年中,Go的热度每年都在增加。主要用途:系统编程Serverless 计算商业应用云原生开发主要竞争对手:CC++RustPythonJavaKotlinJava 是企业软件开发领域无可争议的王者。近年来,Java受到了一些负面评论:过于冗长,大量样板代码,容易出现意外的复杂性。但是,关于Java虚拟机(JVM)的争论却很少。JVM是软件工程的杰作,经过了时间的考验,提供了硬核的runtime。多年来,Scala等JVM语言一直在努力克服Java的缺点,想成为更好的Java,但他们都失败了。最终,这场提升Java的探索以Kotlin的诞生结束。Jet Brains(流行的IDE IntelliJ背后的公司)开发了Kotlin,它可以在JVM上运行,克服了Java的很多缺点,提供许多现代功能。与Scala不同的是,Kotlin比Java更简单,还可在JVM中提供与Go或Python开发人员同等的生产力。Google宣布Kotlin是一流的Android应用开发语言,因此Kotlin在社区中的接受度得到了大幅提高。自2017年以来,同样受欢迎的Java Enterprise框架Spring也开始支持Kotlin。我曾尝试结合Kotlin与Reactive Spring使用,体验非常棒。主要特征:Kotlin的主要卖点在于其语言设计。我总是将Kotlin视为JVM上的Go/Python,因为它简洁明了的代码。因此,Kotlin的生产力很高。与许多其他现代语言一样,Kotlin提供了Null指针、安全性、类型推断等功能。由于Kotlin也运行在JVM中,因此现有Java库庞大的生态系统都可供使用。Kotlin是一流的Android应用开发语言,并且已经超过Java,成为开发Android应用的首选。Kotlin得到了JetBrains和Open Source的支持,因此具有出色的工具支持。Kotlin有两个有趣的项目:Kotlin Native(将Kotlin编译为原生代码)和kotlin.js(Kotlin到JavaScript)。如果成功,则可以在JVM外部使用Kotlin。Kotlin还提供了一种简单的方式来编写DSL(域特定语言)。流行度:自2015年首次发布以来,Kotlin的知名度不断飙升。根据Stack Overflow,Kotlin是2019年第四大最受欢迎的编程语言:Kotlin还是增长最快的编程语言之一,排名第四:在流行编程语言排名网站PyPl的排名中,Kotlin名列第十二名,并具有较高的上升趋势:自从Google宣布Kotlin是一流的Android应用开发语言以来,Kotlin的流行趋势出现了大幅上涨,如下所示:主要用途:企业应用程序Android应用开发主要竞争对手:JavaScalaPythonGo
  • [其他语言] go 如何 banchmark?
    # 执行结果 图1 go test -bench . # 安装图形工具, 用于绘制图形 brew install graphviz # 生成 cpu.out 文件 go test -bench . -cpuprofile cpu.out #  见图2, 输入 web 后生成 图3 go tool pprof cpu.out因为论坛编辑器不支持 golang, 就不贴代码了 根据图中显示, 哪一块最消耗性能, 针对修改, 使用 pprof 继续进行测试, 以完成性能优化
  • [其他语言] Go语言安装参考(CentOS 7.6)
    1、挂载系统ISO镜像并配置本地yum源(无法访问互联网时需要执行此步骤,可以访问互联网直接跳过)挂载OS镜像:mount -o loop /home/CentOS-7-aarch64-Everything-1810.iso   /mnt/CentOS/修改/etc/yum.repos.d/CentOS-Base.repo文件,配置yum本地源:[base]name=CentOS-$releasever   - Base#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infrabaseurl=   file:///mnt/CentOSgpgcheck=1gpgkey=   file:///mnt/CentOS/RPM-GPG-KEY-CentOS-7file:///mnt/CentOS/RPM-GPG-KEY-CentOS-7-aarch64运行下面的命令,使yum源配置生效:yum clean allyum makecacheyum安装GCC等相关依赖:sudo yum install -y snappy snappy-devel autoconf automake libtool   git gcc gcc-c++ make cmake openssl openssl-devel ncurses-devel zlib   zlib-devel bzip2 bzip2-devel bzip2-libs readline readline-devel bison zip   unzip tar tcl java-1.8.0* bison* ncurses*2、配置epel源(安装go默认需要访问互联网,无法访问互联网情况下需要将对应go的rpm包从在线epel源获取并传到服务器手动使用rpm -ivh命令安装)创建/etc/yum.repos.d/epel.repo文件,配置epel源:[epel]name=Extra Packages for Enterprise Linux 7 - $basearchbaseurl=https://mirrors.huaweicloud.com/epel/7/$basearch#metalink=https://mirrors.fedoraproject.org/#metalink?repo=epel-7&arch=$basearchfailovermethod=priorityenabled=1gpgcheck=0#gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7[epel-debuginfo]name=Extra Packages for Enterprise Linux 7 - $basearch - Debugbaseurl=https://mirrors.huaweicloud.com/epel/7/$basearch/debug#metalink=https://mirrors.fedoraproject.org/#metalink?repo=epel-debug-7&arch=$basearchfailovermethod=priorityenabled=0gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7gpgcheck=0[epel-source]name=Extra Packages for Enterprise Linux 7 - $basearch - Sourcebaseurl=https://mirrors.huaweicloud.com/epel/7/SRPMS#metalink=https://mirrors.fedoraproject.org/#metalink?repo=epel-source-7&arch=$basearchfailovermethod=priorityenabled=0gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7gpgcheck=0运行下面的命令,使yum源配置生效:yum clean allyum makecache手动获取rpm包可用如下链接:https://mirrors.huaweicloud.com/epel/7/aarch64/Packages/g/golang-1.13-1.el7.aarch64.rpmhttps://mirrors.huaweicloud.com/epel/7/aarch64/Packages/g/golang-bin-1.13-1.el7.aarch64.rpmhttps://mirrors.huaweicloud.com/epel/7/aarch64/Packages/g/golang-src-1.13-1.el7.noarch.rpm3、执行yum命令直接安装yum -y  install golang4、查看go语言版本go version5、配置环境变量执行go evn查看当前go环境变量$ GOROOT、$ GOPATH的设置:运行下面的命令,使yum源配置生效:[root@cluster1   ~]# go env | egrep -i 'GOROOT|GOPATH'GOPATH="/root/go"GOROOT="/usr/lib/golang"根据上述信息设置当前bash的环境变量export GOROOT="/usr/lib/golang"export GOPATH="/root/go"或者写入到.bash_profile中,并执行source .bash_profile生效
  • 如何基于Go编译器编译ARM二进制
    在linux上编译arm64平台的二进制sudo apt-get install gcc-aarch64-linux-gnuCGO_ENABLED=1 GOOS=linux GOARCH=arm64 go build
  • [其他语言] 鲲鹏服务器上部署golang环境
    在有幸参与鲲鹏训练营的过程中,发现关于go语言环境部署的帖子较少且很多都存在一定问题,没有较为详细的部署描述。特此摸索了关于鲲鹏上部署golang环境的方法,亲身实践过,且补上较为清楚的描述,在这分享给大家,希望有哪里错误的大家也可以指出来,互相学习。1.执行uname -m  查询本机CPU架构  AArch64是ARMv8 架构的一种执行状态。             2.根据CPU架构状态下载对应的安装包推荐的golang国内网址:https://studygolang.com/dl 下载想要的版本如果是aarch64架构的且64位的  建议下载go1.11.5.linux-arm64.tar.gz版本亲测在aarch64架构下,下载go1.9.2.linux-arm64.tar.gz在正常安装后查询版本会变成1.11.5版本,并且编译会出错go tool: no such tool "compile"。其余版本可以自行测试如果是x86的且64位的 可以下载go1.11.5.linux-amd64.tar.gz版本注意一个是arm一个是amd3.本处示例将下载完的安装包放在opt下,其余可以自行参考cd /opttar -C /usr/local -zxvf go1.11.5.linux-amd64.tar.gz将go包解压到/usr/local下进入local目录,查询到已经生成一个go的目录文件夹4.创建go的工作空间mkdir -p /opt/goWorkSpace/{src,bin,pkg}说明:src   存放go源代码的目录,存放golang项目的目录,所有项目都放到gopath的src目录下bin        在go install后生成的可执行文件的目录pkg        编译后生成的,源码文件5.修改系统环境变量vim /etc/profile 在结尾添加export GOROOT=/usr/local/go    #Golang源代码目录,安装目录export GOPATH=/opt/goWorkSpace    #Golang项目代码目录export GOBIN=$GOPATH/bin       #go install后生成的可执行命令存放路径export PATH=$PATH:$GOPATH/bin     #Linux环境变量6.让环境变量生效source /etc/profile 7.go version 查看版本,这样则安装成功     
  • [交流分享] CentOS7下Go环境
    #化鲲为鹏,我有话说#安装包下载https://golang.org/dlhttps://golang.google.cn/dl下载二进制包go1.4.linux-amd64.tar.gz将下载的二进制包解压至/usr/local目录tar -C /usr/local -xzf go1.4.linux-amd64.tar.gz将/usr/local/go/bin目录添加至PATH环境变量vim /etc/profileexport PATH=$PATH:/usr/local/go/bin使环境变量生效source /etc/profile
  • 区块链技术火热程度有目共睹 主要开发语言了解一下
    其实从2009年开始到现在,区块链的技术火热程度一直是处于逐年增加的状态,其他各大行业的巨头也正疯狂的布局之中,一定要赶上一场商业大战,至于这场战争什么时候打响,有些人认为或许在今年,或许在将来的两三年里,所以目前为止,我们还没有办法去做出准确的判断。但是咱们可以先做好准备,下面给大家整理了四种关于区块链技术比较主要的一些开发言语,希望会对大家有一些帮助。 JAVA开发语言(未来币)定义:这是一种面向对象编程语言,集合了C++语言的所有优点,所以Java语言最大的两个特征就是功能的强大以及简单易用。作为静态面向对象编程语言代表,Java其实很好的实现了面向对象的理论,程序员可以使用优雅的思维方式来进行编程。特点:简单性、面向对象、分布式、健壮性、安全性、平台的独立与可移植性、多线程、动态性等。Java可以用来编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。C++开发语言(比特币、公正通、瑞波ripple)定义:C++这个可以说是C语言的继承,在进行C语言过程化程序设计的同时,也能够进行抽象数据的对象的程序设计。另外还可以进行以继承和多态为特点的面向对象的程序设计。值得一提的是,C++擅长于在面向对象程序设计的时候,进行给予过程的程序设计,所以C++适应的问题规模而论,大小由之。GO开发语言(以太坊、IBM)定义:Go是一种新型的,并发的,能够带垃圾回收的,可以快速编译的语言。特点:能在几秒的时间内在计算机上编写大型的Go程序。Go给软件构造了一个模型,能够让依赖分析更容易,并且同时也避免了大部分C风格include文件与库的开头。Go既是静态类型的语言,也是编译型的语言。作为静态类型时,该系统类型是没有层级的,所以用户并不需要在定义的类型之间关系上面去花费时间,比起面向对象语言会更轻量级。作为编译语言使,是结合了解释型的语言更游刃有余,它也将会成为现代,支持网络与多核计算的语言。Solidity开发语言(以太坊)定义:Solidity属于智能合约的高级语言,是在Ethereum虚拟机(EVM)上运行的,语法更接近于Javascript,更像是一种面向对象的语言,不过作为真正运行与网络上的去中心合约,还是有一些不同的。纳讯网络注意:以太坊事实上有四种专用语言:Serpent(Python启发),Solidity(javaScript启发),Mutan(GO启发)和LLL(Lisp启发),这些都是为了面向合约编程而特地设计的。这里面Solidity作为以太坊的首选语言,正在紧张的开发之中,它内置了Serpent的所有特性,但是语法类似于JavaScript,JavaScript是web开发的常用语言。 
  • [问题求助] 能提供个go的demo不,说实话没太搞懂要写个啥
    能提供个go的demo不,说实话没太搞懂要写个啥
  • [技术干货] 请问 Golang 语言的 OBS SDK 是否支持 go module?
    请问 Golang 语言的 OBS SDK 是否支持 go module?是否支持 go mod 方式引入到客户项目中?
  • [其他语言] 【华为云鲲鹏云服务最佳实践】【语言篇】第005期 GO 1.11.10 安装配置指南
    1、简介     Go(又称Golang)是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。     官方链接:https://studygolang.com/dl       类别:语言2、基础环境类别子项版本获取地址(方法)华为云虚拟机RC3(916)--OSCentOS7.6  Kernel4.14 软件包Golang1.11.10https://kojipkgs.fedoraproject.org//packages/golang/1.11.10/1.fc29/src/golang-1.11.10-1.fc29.src.rpm3、依赖安装安装操作系统自带依赖软件版本4、组件编译安装1)安装epel-release 源yum install epel-release进入/etc/yum.repos.d/epel.repo.rpmnewvim /etc/yum.repos.d/epel.repo.rpmnew写入如下内容[epel]name=Extra Packages for Enterprise Linux 7 - $basearchbaseurl=https://mirrors.huaweicloud.com/epel/7/$basearchfailovermethod=priorityenabled=1gpgcheck=0gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 [epel-debuginfo]name=Extra Packages for Enterprise Linux 7 - $basearch - Debugbaseurl=https://mirrors.huaweicloud.com/epel/7/$basearch/debugfailovermethod=priorityenabled=0gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7gpgcheck=0 [epel-source]name=Extra Packages for Enterprise Linux 7 - $basearch - Sourcebaseurl=https://mirrors.huaweicloud.com/epel/7/SRPMSfailovermethod=priorityenabled=0gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7gpgcheck=02)从fedora网站下载源码包wget https://kojipkgs.fedoraproject.org//packages/golang/1.11.10/1.fc29/src/golang-1.11.10-1.fc29.src.rpm3)安装源码包1、rpm -ivh golang-1.11.10-1.fc29.src.rpm2、rpmbuild -ba ~/rpmbuild/SPECS/golang.spec编译过程中可能出现的问题:解决方法:将Recommends和ExclusiveArch两行注释掉然后继续执行rpmbuild -ba ~/rpmbuild/SPECS/golang.spec进入/root/rpmbuild/RPMS/aarch64/,查看rpm包,进行安装,若出现golang和golang-bin相互依赖安装的情况,需要同时安装golang和golang-bin。进入/root/rpmbuild/RPMS/noarch,查看需要安装的依赖包,并分别对4个rpm包进行安装rpm -ivh golang-src-1.11.10-1.el7.centos.a.noarch.rpmrpm -ivh golang-docs-1.11.10-1.el7.centos.a.noarch.rpmrpm -ivh golang-misc-1.11.10-1.el7.centos.a.noarch.rpmrpm -ivh golang-tests-1.11.10-1.el7.centos.a.noarch.rpm5、系统配置无6、测试1)go version测试结果: 7、参考信息无8、FAQ无
总条数:166 到第
上滑加载中