Моя цель - иметь возможность вызова функций Go из проекта Cocoa, но я только начал с чистого проекта C CoreFoundation.Как связать пакет go в проекте Xcode CoreFoundation?
Вот мой простой идти пакет:
package hello
import "C"
import (
"fmt"
)
//export SayHello
func SayHello() {
fmt.Println("Hello, World!")
}
Я строю это с помощью go install
, который генерирует LIB hello.a
.
Я хочу, чтобы иметь возможность связать эту библиотеку с моим проектом CoreFoundation, чтобы я мог позвонить SayHello
из моего кода на C.
Выполнение этого приводит к тому, что Xcode показывает предупреждение о том, что hello.a
был проигнорирован, потому что он не был построен для архитектуры X86_64.
Я могу сказать, что проблема, скорее всего, связана с тем, что способ компиляции кода Go несовместим с тем, как XCode компилирует проект CoreFoundation.
Поэтому мой вопрос: возможно ли каким-то образом скомпилировать мой пакет Go таким образом, который связан с моим проектом CoreFoundation?
Я так не думаю. Go может вызывать C bt не наоборот, из-за отсутствия времени выполнения Go. – Volker
Я знаю, что C может вызывать функции Go, но вы, возможно, правы из-за времени выполнения, возможно, основная функция должна быть в Go. –