Недавно я задал этот вопрос https://softwareengineering.stackexchange.com/questions/129076/go-instead-of-c-c-with-cgo и получил очень интересный ввод. Однако в моем вопросе есть ошибка: я предположил, что cgo также может использоваться для доступа к C++-коду, но это невозможно. Вместо этого вам нужно использовать SWIG.заменить C++ go + swig
ходу чаво говорит: «Программа ОЦП обеспечивает механизм для„внешней функции интерфейса
моего вопрос“, чтобы обеспечить безопасное призвание библиотек C от Go кода SWIG расширяет эту возможность для библиотек C++..»: Возможно ли получить доступ к высокоуровневым фреймворкам C++, таким как QT, с помощью SWIG + Go и получить производительность? Я хотел бы использовать Go как «язык сценариев» для использования библиотек C++.
Есть ли у вас опыт работы с go и swig? Есть ли подводные камни, о которых я должен знать?
Update/Ответ: Я спросил это через IRC тоже, и я думаю, что вопрос решается:
SWIG довольно чистый способ взаимодействия C++ кода из других языков. К сожалению, сопоставление типов C++ с чем-то вроде go может быть очень сложным, и в большинстве случаев вы должны сами указывать отображение. Это означает, что SWIG - это хороший способ использовать существующую кодовую базу для повторного использования уже написанных алгоритмов. Однако сопоставление библиотеки, такой как Qt, приведет вас к возрасту. Разумеется, это возможно, но вы не хотите этого делать.
Те из вас, кто пришел сюда для программирования gui с помощью go, могут попробовать попробовать go-gtk или версию wxWidgets.
Это относится к stackoverflow. Проголосовал за закрытие/перемещение. –
Это смешно: сначала я попросил http://programmers.stackexchange.com/questions/129076/go-instead-of-c-c-with-cgo в stackoverflow и был перенесен в programers.stackexchange. Теперь обновленный вопрос переместится от программистов назад. – lhk
Я думаю, что абсурдно, что кто-то хотел перенести этот вопрос на программистов. Кажется, мне нравится именно такой вопрос, для которого предназначен Stackoverflow. Я ошибаюсь? –