Простой SWIG с C ++ для python компилируется, но вывод не кажется правильным? - PullRequest
1 голос
/ 28 апреля 2020

Я довольно новичок в SWIG (и c ++), поэтому я пытался использовать пример с этого сайта Кажется, что это простой код. Я скомпилировал это ... успешно (я думаю?) В Visual Studio.

1>------ Rebuild All started: Project: minimal, Configuration: Release x64 ------
1>Performing Custom Build Tools
1>minimal.cpp
1>minimal_wrap.cxx
1>   Creating library ..._minimal2.lib and object ...minimal2.exp
1>Generating code
1>Previous IPDB not found, fall back to full compilation.
1>All 70 functions were compiled because no usable IPDB/IOBJ from previous compilation was found.
1>Finished generating code
1>minimal.vcxproj -> C:\...\_minimal.pyd
========== Rebuild All: 1 succeeded, 0 failed, 0 skipped ==========

Но затем, когда я попытался запустить его на spyder (консоль i python)

import _minimal
m1 = minimal.minimal()
print(m1)

, выдает <minimal.minimal; proxy of <Swig Object of type 'minimal2 *' at 0x000001D0C68BDDE0>

с веб-сайта учебника, Похоже, я должен получить некоторые целые числа?

m1.print_num_instances()

Эта команда не приводит к выводу ... мой файл построен неправильно?

1 Ответ

0 голосов
/ 29 апреля 2020

Похоже, мне пришлось добавить «typemaps.i» и определить тип вывода. Я не работал над примером, который использовался в моем вопросе выше, но я нашел другой пример очень полезным.

/* typemaps.i allows input and output pointer arguments to be specified using the names INPUT, OUTPUT, or INOUT */
%include "typemaps.i"

void   hw1(double r1, double r2, double *OUTPUT);

В примере показано, что их первая попытка завершилась неудачно с аналогичным указателем типа ответа I получил. Затем после typeamps.i работает hw1!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...