SWIG генерирует «клейкий код», необходимый, когда программе, написанной на одном языке, необходимо вызвать программу, написанную на другом. SWIG предполагает, что C / C ++ является своего рода наименьшим общим знаменателем, и если вы хотите соединить, скажем, Python и Java, вам придется передавать всю информацию через C. SWIG очень амбициозен и охватывает большое количество языки сценариев, в основном обеспечивающие импорт / экспорт в C или C ++.
То, как вы используете SWIG, зависит от языка сценариев, но общая идея всегда одна и та же: вы описываете некоторый заголовочный файл C / C ++, а SWIG генерирует связующий код, необходимый для использования этого заголовочного файла, из вашего любимого языка сценариев. Соединение двух языков сценариев вместе не подходит для общего случая использования, и я был бы удивлен, если бы у вас не было проблем. Хорошим планом будет обмен только неизменяемыми данными между двумя языками. Даже тогда я приготовлю сюрпризы.
Резюме: SWIG достаточно хорошо работает для того, для чего он предназначен, то есть для экспорта библиотек C / C ++ в огромное множество языков сценариев & mdash; но по одному на время. Наличие двух разных языков сценариев, работающих в одном образе процесса, может оказаться сложнее, чем вы ожидаете.