-
2020-10-24:go中channel的recv流程是什么?#福大大架构师每日一题#
-
2020-10-23:go中channel的创建流程是什么?#福大大架构师每日一题#
-
2020-10-21:go中channel的send流程是什么?#福大大架构师每日一题#
-
go-chassis 自身在华为云上是以https的服务提供给各个微服务的。 CSE支持各个微服务之间通过https相互访问吗?go-chassis日志里面都是看到 微服务之间都是通过 CSE://{模块}:{端口号} 方式相互通信的微服务模块间通信本质是走http消息 附加额外的CSE消息头标识, 我们的CSE支持走https消息 附加CSE消息头标识吗?
-
同一张图片在浏览器上下载大概在300 ms的样子,而在我们提供的go例子中却需要约2-3s耗时10倍以上采用的例子是examples中的download_sample.go的getobs函数
-
2020-08-20:GO语言中的协程与Python中的协程的区别?
-
go-fastdfs
-
文章转载自 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: 改进交叉编译工具链
W--wangzhiqiang
发表于2020-07-29 15:26:58
2020-07-29 15:26:58
最后回复
W--wangzhiqiang
2020-07-29 15:26:58
1122 0 -
我想安装gin按https://support.huaweicloud.com/usermanual-cloudide/go_get.html操作,但不行。
-
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语言的样例?
-
# 执行结果 图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 继续进行测试, 以完成性能优化
-
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生效
-
在linux上编译arm64平台的二进制sudo apt-get install gcc-aarch64-linux-gnuCGO_ENABLED=1 GOOS=linux GOARCH=arm64 go build
-
在有幸参与鲲鹏训练营的过程中,发现关于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 查看版本,这样则安装成功
blackMan@顶点对对队
发表于2019-10-29 22:31:11
2019-10-29 22:31:11
最后回复
五湖四海@银河护卫队
2020-04-03 09:23:21
10004 4
上滑加载中
推荐直播
-
华为云码道Agent集成与鸿蒙实战2026/08/11 周二 19:00-21:00
王一男-华为云码道产品规划专家;李炎-华为云码道产品专家;彭江敏-华为云鸿蒙端云一体化开发专家
本次直播带你解读华为云码道7月份产品新特性、新功能。更有专家演示码道Agent Space × 钉钉机器集成实战,从0到1打通消息通道;码道鸿蒙端云一体化实战,快速搭建员工签到系统。
回顾中 -
华为云开发者AI素养直播课·第三期2026/08/21 周五 16:00-18:00
林华鼎-华为云AI开发者运营负责人;念擎-华为云AI开发者运营案例开发专家
本期直播内容:AI六层能力首次详细解读 + 新一代华为云开发者空间亮相 + 校园案例直播带练
即将直播
热门标签