в C++. Сделал тестовую функцию, которая аргументом принимает string параметр.
Сделал билд в .so файл и на вызоде получил 2 файла (.so и .h). Далее в main.cpp импортировал .h файл, все было хорошо, оно увидело функцию из go библиотеки.
Вызвал эту функцию в C++, но при попытке собрать в exe плюсовый файл получал ошибку
main.cpp:7:12: error: could not convert 's' from 'std::string' {aka 'std::__cxx11::basic_string<char>'} to 'GoString' {aka '_GoString_'}
7 | dither(s);
| ^
| |
| std::string {aka std::__cxx11::basic_string<char>}
помогите пж, что надо сделать?
Сделать обёртку на чистом си и использовать в го тип *C.Char, а в плюсах обычный человеческий char*
я чето не могу C.Char тип использовать, пишет "undefined: C.Char"
спрошу на всякий случай - вы понимаете, что такая функция потащит за собой весь гошный рантайм со всеми его тредами, включая gc?
да, но мне не для скорости, я просто для себя поразвлекаться
попробуйте делать наоборот - тогда оно не только для развлечения, а ещё и пригодится когда-нибудь
Обсуждают сегодня