![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 3 Всего: 43 |
Создаю модуль для питона, и надо юзать C++.
2 варианта: 1) 1 из файлов на сабже 2) весь модуль на c++ Когда 1 файл, то ошибка линковки: Error 1 error LNK2001: unresolved external symbol _mutex_create python_mutex.obj python_mutex Хотя она есть. И h-файл нужный подключен Если вырезать C++-логику из этого файла и переименовать в C - то нормально компилит Если же весь модуль делаю на C++, то все нормально компилится. Но при использовании питон плюется: ImportError: dynamic module does not define init function (initmutex) Хотя при этом я ее экспортирую: __declspec(dllexport) void initmutex(void) {.... Как решить проблему? |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 53 Всего: 183 |
Чтобы получить незамаранное имя, используй extern C {}. Туда же можно весь С-модуль засунуть. C и C++ различаются, в частности, и правилами линковки: С++ меняет имена функций, дополняя их типами аргументов и прочей лабудой. Поэтому твоя функция и не видна - она по-другому называется, будучи C++. Создай ради интереса map-файл и посмотри на имена. -------------------- ... |
|||
|
||||
| GremlinProg |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 3 Всего: 106 |
-------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
| nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 3 Всего: 43 |
Ага, спасибо.
Я этот способ сам нагуглил, но мне показался он хаком просто. |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |