gpt4 book ai didi

go - 如何在 Xcode CoreFoundation 项目中链接 go 包?

转载 作者:IT王子 更新时间:2023-10-29 02:18:09 26 4
gpt4 key购买 nike

我的目标是能够从 Cocoa 项目调用 Go 函数,但我只是从纯 C CoreFoundation 项目开始。

这是我的简单 go 包:

package hello

import "C"

import (
"fmt"
)

//export SayHello
func SayHello() {
fmt.Println("Hello, World!")
}

我使用生成库 hello.ago install 构建它。
我希望能够将此库链接到我的 CoreFoundation 项目,以便我可以从我的 C 代码调用 SayHello

这样做会导致 Xcode 显示一条警告,指出 hello.a 被忽略,因为它不是为 X86_64 架构构建的。

我可以说这个问题很可能是因为 Go 代码的编译方式与 XCode 编译 CoreFoundation 项目的方式不兼容。

因此我的问题是:是否有可能以某种方式以可与我的 CoreFoundation 项目链接的方式编译我的 Go 包?

最佳答案

您不能将 Go 库链接到 C 程序中。输出的 *.a 文件与 C 目标文件的格式不同,因此 C 编译器不知道如何链接它们。

*.a 文件遵循此处描述的格式:http://golang.org/cmd/pack/在这里:http://plan9.bell-labs.com/magic/man2html/1/ar

CGO 允许 C 调用 go 函数,反之亦然,但这将要求主应用程序是 Go 二进制文件而不是 C 二进制文件,以便链接正常工作。

关于go - 如何在 Xcode CoreFoundation 项目中链接 go 包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17477026/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com