Могу ли я использовать общие объекты с Go? - PullRequest
2 голосов
/ 12 февраля 2010

Могу ли я использовать общие объекты с Go?

1 Ответ

5 голосов
/ 12 февраля 2010

Согласно Go FAQ , вы можете вызывать библиотеки C, используя "интерфейс внешних функций":

Связаны ли программы Go с программами C / C ++?

Существует две реализации компилятора Go: 6g и friends, обычно называемые gc и gccgo. Gc использует другое соглашение о вызовах и компоновщик и поэтому может быть связано только с программами на C, использующими то же соглашение. Существует такой компилятор C, но нет компилятора C ++. Gccgo - это интерфейс GCC, который может быть осторожно связан с программами C или C ++, скомпилированными GCC. Однако, поскольку Go собирает мусор, это будет неразумно, по крайней мере наивно.

Существует «интерфейс внешних функций», позволяющий безопасно вызывать написанные на C библиотеки из кода Go. Мы ожидаем использовать SWIG, чтобы расширить эту возможность для библиотек C ++. Пока нет безопасного способа вызова кода Go из C или C ++.

Чтобы ответить на ваш предыдущий вопрос о Windows DLL: нет, поскольку в настоящее время нет реализации Windows для Go. Для получения дополнительной информации читайте can-go-compiler-be-install-on-windows

...