Что лучше всего подходит для однократной записи нативной библиотеки и использования ее на нескольких языках с привязками к языку?
Какой язык, C или C++, лучше всего подходит для однократной записи нативной библиотеки и использования ее на разных языках с привязками к языку (например, с использованием расширений JNI или Ruby C) и почему?
2 ответа
Решение
С, потому что
- программа, написанная на C++, может использовать библиотеку C, с другой стороны, это намного сложнее - любая конструкция, доступная на C++, но не на C, не может быть экспортирована в программу на C, что может усложнить экспорт.
- Библиотека AC будет иметь меньше зависимостей. Библиотеки C++ довольно часто будут зависеть от libstdC++, который настолько велик, что, например, во встроенных системах или, в более общем случае, в системах с низким уровнем ресурсов, он не всегда будет доступен.
Вы можете написать свою библиотеку на C++, если хотите, если вы предоставляете внешние привязки "C" / экспорт в нее, чтобы другие среды выполнения могли ее использовать.