2015-02-17 4 views
1

Я нашел массу информации о том, как использовать cgo для вызова библиотек C из Go, но меня интересует обратное: запись библиотеки в Go и ее связывание/использование в различные программы на С.Calling Go library from C Code

Возможно ли это? Какие-нибудь хорошие ресурсы для этого? Благодарю.

+0

Текущая точка зрения: глядя на поддержку iOS «мобильной» библиотеки. Похоже, что это возможно, но очень рано. – delrox

ответ

1

В настоящее время это невозможно. Go должен быть точкой входа и без использования gccgo, вы не можете скомпилировать Go в общую библиотеку.

Есть предложение изменить это, поэтому в какой-то момент оно может быть или не быть. Для получения дополнительной информации см. this document.

+0

Для тех из вас, кто ищет небиблиотечный ответ, см. Этот, также jimt http://stackoverflow.com/questions/6125683/call-go-functions-from-c/6147097#6147097 – delrox

+2

Второй абзац @ jimt - теперь это возможно. Теперь ветка подсказки Go поддерживает 'go build -buildmode = c-archive yourpkg', который будет строить библиотеку, которая не должна быть точкой входа. Документ, на который он указал, содержит более подробную информацию, но я тестировал это, и он работает. – delrox