草庐IT

CGO_OFILES

全部标签

multithreading - 使用 Go 1.2 的线程 CGO

编辑:这个问题没有实际意义。我误读了提交日期,它包含在现有版本的Go工具中。谢谢,詹姆斯!似乎即将发布的Go(1.3)将允许non-GothreadstocallCGOcallbacks.我想知道迄今为止,人们通常会做什么来绕过此限制。也就是说,我有一个自己创建线程的第三方库,我想从这些线程中获取一些信息到Go代码中。在代码的“C”端,某种从C线程到Go线程的切换机制?有什么方法可以在不调用Go的情况下将消息放入队列?其他想法? 最佳答案 您突出显示的提交是从去年2月开始的,也就是Go1.1版本之前的提交。它还引用了issue443

multithreading - 使用 Go 1.2 的线程 CGO

编辑:这个问题没有实际意义。我误读了提交日期,它包含在现有版本的Go工具中。谢谢,詹姆斯!似乎即将发布的Go(1.3)将允许non-GothreadstocallCGOcallbacks.我想知道迄今为止,人们通常会做什么来绕过此限制。也就是说,我有一个自己创建线程的第三方库,我想从这些线程中获取一些信息到Go代码中。在代码的“C”端,某种从C线程到Go线程的切换机制?有什么方法可以在不调用Go的情况下将消息放入队列?其他想法? 最佳答案 您突出显示的提交是从去年2月开始的,也就是Go1.1版本之前的提交。它还引用了issue443

macos - 在 Mac OS X 上使用 go 1.3 启用 cgo 进行交叉编译时出现问题

我尝试使用Go1.3在我的darwin/amd64MBP上将cgo代码交叉编译到linux/arm,但没有成功:(我的环境:go版本go1.3darwin/amd64我的目标:针对linux/arm交叉编译cgo代码。第一步:使用ct-ng构建gcc/g++交叉编译器。构建arm-unknown-linux-gnueabi-g++和arm-unknown-linux-gnueabi-gcc的路很长,但我终于做到了。我用简单的C/C++程序进行了测试,输出在我的linux/armR-Pi机器上运行良好。第2步:cd/path/to/go/srcsudoCGO_ENABLED=1CC_FO

macos - 在 Mac OS X 上使用 go 1.3 启用 cgo 进行交叉编译时出现问题

我尝试使用Go1.3在我的darwin/amd64MBP上将cgo代码交叉编译到linux/arm,但没有成功:(我的环境:go版本go1.3darwin/amd64我的目标:针对linux/arm交叉编译cgo代码。第一步:使用ct-ng构建gcc/g++交叉编译器。构建arm-unknown-linux-gnueabi-g++和arm-unknown-linux-gnueabi-gcc的路很长,但我终于做到了。我用简单的C/C++程序进行了测试,输出在我的linux/armR-Pi机器上运行良好。第2步:cd/path/to/go/srcsudoCGO_ENABLED=1CC_FO

go - 为什么我的交叉编译的 CGO 二进制文件不能在 Raspberry Pi (Raspbian) 上运行?

当我编译以下代码片段(playgroundlink)时:packagemain/*#cgoLDFLAGS:-lbluetooth#include#include#include*/import"C"funcmain(){C.hci_get_route(nil)}…使用这些环境变量:CC=arm-linux-gnueabihf-gccCGO_ENABLED=1GOARCH=armGOARM=6我得到一个1.6Mb的二进制文件:在我的ODROID-C1(ARMv7,运行Arch,来自archlinuxarm.org)上工作,但是不适用于我的RaspberryPiB+(ARMv6,运行Ras

go - 为什么我的交叉编译的 CGO 二进制文件不能在 Raspberry Pi (Raspbian) 上运行?

当我编译以下代码片段(playgroundlink)时:packagemain/*#cgoLDFLAGS:-lbluetooth#include#include#include*/import"C"funcmain(){C.hci_get_route(nil)}…使用这些环境变量:CC=arm-linux-gnueabihf-gccCGO_ENABLED=1GOARCH=armGOARM=6我得到一个1.6Mb的二进制文件:在我的ODROID-C1(ARMv7,运行Arch,来自archlinuxarm.org)上工作,但是不适用于我的RaspberryPiB+(ARMv6,运行Ras

go - 我可以更改 cgo 使用的默认编译器吗?

我正在尝试在ubuntu14.04下执行cgo代码,似乎cgo假设CC/CXX为gcc/g++。而且我需要明确指定CC/CXX才能使用clang。我可以配置通过go的构建约束使用的默认编译器吗?谢谢! 最佳答案 cgo使用的C或C++编译器可以分别使用CC和CXX环境变量指定。例如,要使用Clang:CC=clanggobuildpath/to/cgo/dependent/code.go变量还可以指定要传递给编译器的标志;例如,运行GCC优化:CC="gcc-O2"gobuildpath/to/cgo/dependent/code.

go - 我可以更改 cgo 使用的默认编译器吗?

我正在尝试在ubuntu14.04下执行cgo代码,似乎cgo假设CC/CXX为gcc/g++。而且我需要明确指定CC/CXX才能使用clang。我可以配置通过go的构建约束使用的默认编译器吗?谢谢! 最佳答案 cgo使用的C或C++编译器可以分别使用CC和CXX环境变量指定。例如,要使用Clang:CC=clanggobuildpath/to/cgo/dependent/code.go变量还可以指定要传递给编译器的标志;例如,运行GCC优化:CC="gcc-O2"gobuildpath/to/cgo/dependent/code.

c - Golang (cgo) - 支持带有 cgo 的嵌套结构?

我试图使用cgo为x264库编写一个小包装器,但遇到了嵌套结构的问题。该库使用了许多复杂的结构,其中一些字段本身就是匿名结构。当尝试使用cgo访问这些结构时,我遇到了编译错误,因为go声称嵌套结构不存在。我已经设法将问题归结为一个.h文件和一个粘贴在下面的.go文件。希望这足以说明问题。有人知道这个问题的解决方案或变通方法吗?谢谢。结构.htypedefstructparam_struct_t{inta;intb;struct{intc;intd;}anon;inte;struct{intf;intg;}anon2;}param_struct_t;main.gopackagemain/

c - Golang (cgo) - 支持带有 cgo 的嵌套结构?

我试图使用cgo为x264库编写一个小包装器,但遇到了嵌套结构的问题。该库使用了许多复杂的结构,其中一些字段本身就是匿名结构。当尝试使用cgo访问这些结构时,我遇到了编译错误,因为go声称嵌套结构不存在。我已经设法将问题归结为一个.h文件和一个粘贴在下面的.go文件。希望这足以说明问题。有人知道这个问题的解决方案或变通方法吗?谢谢。结构.htypedefstructparam_struct_t{inta;intb;struct{intc;intd;}anon;inte;struct{intf;intg;}anon2;}param_struct_t;main.gopackagemain/