问题标签 [gccgo]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
go - 用于 solaris/sparc 的 gccgo 上的 filebeat/libbeat 编译器
我正在为太阳能/SPARC 环境编译项目文件。Solaris 正式不支持 Elastic 工具。
Neamoins,有这个问题的规避/通过 gccgo 编译。我实际上准备了我的 gccgo 编译器。我可以编译一个小项目(带有单个文件 hello.go),如下所示。但是一旦我尝试编译 filebeat 项目,它就不起作用。可能是依赖问题。我不太了解。如果有人可以帮助我。谢谢
命令:去构建 --compiler gccgo --gccgoflags "-v -static-libgo -Wl,-dy -lnsl -lsocket -lrt -lsendfile"
示例 1:
它工作得很好,但是,
示例 2
这就是我卡住的地方
谢谢你
linux - cgo 从 amd64(linux) 交叉编译到 arm64(linux)
我正在尝试使用基于 arm64 的“amd64”为“arm64”架构构建一个 go 代码。当我使用共享库构建 go 代码时,出现下面提到的错误。有人可以帮助我吗?
Go 版本:go1.10.3 linux/amd64
gcc 版本:gcc 版本 7.3.0 (Ubuntu 7.3.0-21ubuntu1~16.04)
去环境:
错误:去构建 hello.go
去代码:
go - 如何使用 gccgo 构建超级账本结构
有没有办法使用 gccgo 构建超级账本结构?我想这样做是为了使用 gcc 的 -finstrument-functions 选项来跟踪函数调用。但是我遇到了两个问题。我的步骤如下。
- 找到构建命令
make -n 释放
echo "为 linux-amd64 构建版本/linux-amd64/bin/configtxgen"
mkdir -p 发布/linux-amd64/bin CGO_CFLAGS=""
GOOS=linux GOARCH=amd64 go build -o /home/yiifburj/go/src/github.com/hyperledger/fabric/release/linux-amd64/bin/configtxgen -tags "nopkcs11" -ldflags "-X github.com/ hyperledger/fabric/common/tools/configtxgen/metadata.Version=1.1.0" github.com/hyperledger/fabric/common/tools/configtxgen
- 修改构建命令以使用 gccgo
CGO_CFLAGS="" GOOS=linux GOARCH=amd64 go build -compiler gccgo -o /home/yiifburj/go/src/github.com/hyperledger/fabric/release/linux-amd64/bin/configtxgen -tags "nopkcs11" -gccgoflags “-X github.com/hyperledger/fabric/common/tools/configtxgen/metadata.Version=1.1.0” github.com/hyperledger/fabric/common/tools/configtxgen
#github.com/hyperledger/fabric/bccsp/factory
bccsp/factory/pluginfactory.go:12:8:错误:找不到导入文件“插件”
“插件”bccsp/factory/pluginfactory.go:56:15:错误:对未定义名称的引用
'plugin' 插件,错误:= plugin.Open(config.PluginOpts.Library)
首先,如上,go build调用gccgo时找不到“plugin”。另一个是使用 gccgo 时如何传递 ldflags -X?似乎 -X 是仅在 gc 工具而不是 gccgo 中无效的参数。
任何人都可以帮助我吗?谢谢。
c - 通过 Cgo 访问 aerospike C 客户端时出错
我正在尝试学习 Cgo,所以我尝试从 Cgo 访问 aerospike 客户端
但我得到以下错误。(请注意,当我 make 和 make run 时 C 程序运行成功)。
所以我认为问题出在 Makefile 中的配置上。我已经搜索了一整天并尝试了许多解决方案但无济于事。你能帮我如何在 Cgo 中导入 Makefile 吗?或帮助我成功执行此操作的替代方法..
go - 如何在 GCCGO 中导入值以执行 go linker ldflags -X 在 GC 编译器中执行的操作
现在,我有了 bash 代码,它可以在编译时使用 go 工具中的链接器将版本值导入 go 源代码。这段代码可以用 GC 正常运行。
go build -ldflags "-X something:something" main.go
但是我在机器上测试我的代码,它的架构只支持 gccgo 而不是 gc,而 gccgo 不支持 -ldflags,它是 gc 中的链接器工具。虽然 gccgo 有标志选项,即 -gccgoflags,但我没有看到我需要的链接标志。
我想知道 gccgo 中是否有任何相关标志,或者有没有其他方法可以将值插入源代码?
我不想用 bash 硬编码这个特性。
谢谢。
linux - 如何减少 gccgo 编译的可执行文件所需的虚拟内存?
当我使用 gccgo 编译这个简单的 hello world 示例时,生成的可执行文件使用了超过 800 MiB 的 VmData。我想知道为什么,如果我能做些什么来降低它。睡眠只是为了给我时间观察内存使用情况。
来源:
我用来编译的脚本:
gccgo的版本:
/proc/<pid>/status 的输出:
我问是因为我的设备只有 512 MiB 的 RAM。我知道这是虚拟内存,但我想尽可能减少或删除过度使用。对我来说,一个简单的可执行文件需要这么多分配似乎是不合理的。
go - 为什么gccgo会报这么奇怪的错误信息?
它只是一个简单的“Hello World”程序,源代码:
我编译它,用
去版本 go1.10.3 gccgo (GCC) 8.3.0 linux/amd64
它报告了以下错误消息:
命令go env
打印
go - 如何为 ARM 架构构建 SO 库
我需要在 Go 中构建一个共享库。为此,我使用CGO
并构建SO
了带有选项的 lib
go build -o libUtil.so -buildmode=c-shared main.go
现在,我需要做同样的事情,但对于ARM
架构。当我不使用CGO
时,我只使用,export GOARCH=arm
这足以成功。但是,当我使用时CGO
,我无法构建SO
库。
我怀疑我需要安装arm 构建工具,但我不知道该怎么做以及如何配置我的 GO 环境以使用这些工具。我希望,有人可以帮助我。
操作系统是Linux。
go - crosstool-ng gccgo 构建错误,带有未定义的 morestack 符号
我正在使用 crosstool-ng 1.24.0 构建 gccgo。编译非常简单的 main.go 时出现链接器错误。知道如何解决这个问题吗?任何指向成功构建 gogcc 的指针,即使对于可以轻松验证的不同流行目标也是如此?
主机是 ubuntu 18.04 和 gcc 7.3.0。crosstool-ng 目标是 x86_64-ubuntu16.04-linux-gnu,它应该使用 glibc 2.23 创建 gcc 8.3.0。
以下是缺少的符号:
构建步骤的更多细节:
[1] 查看 crosstool-ng。它的主人现在在 1.24.0 上。
[2] 运行这些命令来构建一个普通的 c 和 c++ 工具链:
[3] 通过编译一个 hello-world 程序并运行来验证 gcc 是否工作。
[4] 编辑脚本以启用 go。补丁看起来像:
[5]./ct-ng build
再次运行。
[6] 编译一个非常简单的main.go:
使用命令:
得到这些错误:
go - 在太阳能上使用 gcc 9.1.0 的未定义 C 类型“int”
我从源代码 (GNU) 在 Solaris 11 (SPARC) 上构建了 gcc 9.1.0。构建进展顺利,CGO 免费的 Go 代码可以编译并运行。
使用 CGO 代码 gccgo 构建不会编译。引用任何 C 标准类型(如 C.int)的 go 代码返回错误:
这是未构建的简单示例代码。
在其他平台上,正确引用了 C 类型。在 gcc 编译期间我是否错过了编译器标志?
configure
使用以下命令调用 gcc:
有没有人提示如何在 Solaris SPARC 上正确构建 gccgo?是否缺少 Solaris 上需要的头包含文件依赖项?