相关疑难解决方法(0)

在现有C项目中使用Go代码

自从Go 1.5问世以来,我开始重新审视如何将其整合到我现有的项目中.

该项目的代码库完全用C语言编写,用于低级访问硬件和其他有趣的东西.然而,一些更高级别的东西是乏味的,我想开始用更高级别的语言编写它们(Go)

有什么方法可以从C程序调用Go代码吗?我安装了Go 1.5,它添加了-buildmode=c-archive(https://golang.org/s/execmodes),我正在努力工作.

但是,我似乎无法让Go生成适当的头文件以允许我的项目实际编译.当我生成存档时,我在导出的符号中看到了这个函数(使用objdump),但没有包含gcc的头文件抱怨函数不存在(如预期的那样)

我是Go的新手 - 然而,我喜欢这种语言,并希望能够利用它.是否有任何习惯的方式("惯用"在Go的世界中被广泛使用,我看到......)让这个可以很好地与对方玩耍?

我之所以提出这个问题并特别提到Go 1.5的原因是,根据这份文件,https://docs.google.com/document/d/1nr-TQHw_er6GOQRsF6T43GGhFDelrAP0NqSS_00RgZQ/edit?pli= 1# heading=h.1gw5ytjfcoke Go 1.5支持非Go程序调用Go代码.具体而言,在"Go代码链接到非Go程序并从中调用"一节中提到

c go

36
推荐指数
1
解决办法
5686
查看次数

如何在 C# 中执行 Go 函数

有没有办法从 C# 执行 Go 函数?例如,对于 Python,我会使用 Ironpython。

我知道我可以生成一个进程来执行 Go 脚本,但如果可能的话,我真的不想回退到这样的解决方案。

谷歌搜索没有显示任何内容,那么有没有办法使用 API 来做到这一点?还是我必须回退流程?

c# go

5
推荐指数
2
解决办法
7710
查看次数

为什么Go会为小程序生成大的二进制文件?

为什么Go编译器会产生大的二进制文件?

例如,在编译下面的代码后,我得到一个1.8 MB的exec文件

package main
import "fmt"
func main(){
   fmt.Println("Hello World")
}
Run Code Online (Sandbox Code Playgroud)

我在UbuntuWin7上测试了上面的代码,结果是一样的!

我还用+70行代码编写了一个更大的程序,结果二进制文件又惊人地1.8 MB(实际上有几个字节差异).我想知道Go编译器将什么转储到二进制文件中.

size binary go

4
推荐指数
1
解决办法
1211
查看次数

标签 统计

go ×3

binary ×1

c ×1

c# ×1

size ×1