Обновление: теперь возможно сделать это в mainline Go, см. Режимы выполнения Go
Из примечаний к выпуску Go 1.5 :
Только для архитектуры amd64 у компилятора есть новая опция -dynlink, которая помогает динамической компоновке, поддерживая ссылки на символы Go, определенные во внешних разделяемых библиотеках.
blockquote>Старый ответ ( полезное обсуждение других опций ):
В настоящее время невозможно создать динамически связанные библиотеки * в главной строке Go. Об этом говорили некоторые, поэтому вы можете увидеть поддержку в будущем. Тем не менее, существует проект стороннего проекта под названием goandriod , который нуждается в той же функциональности, в которой вы нуждаетесь, поэтому они поддерживают исправления, которые должны позволить вам исправлять официальную базу кода Go, чтобы поддерживать динамическую связанную поддержку, которую вы запрашиваете .
Если вы хотите использовать стандартное время выполнения Go, я бы порекомендовал одно из следующего. Вызовите свою программу Go из своей другой программы и обменивайтесь ею с помощью:
- Трубы для связи
- Сокет домена UNIX
- Монументированный регион общей памяти , То есть создайте файл на / dev / shm и у вас есть обе программы mmap. Перейти к библиотеке mmap: https://github.com/edsrzf/mmap-go
Каждый последовательный вариант потребует больше усилий для настройки, но потенциально более мощным, чем предыдущий.
* Примечание. Это DLL в мире Windows и .so файлы в мире UNIX / Linux.