В настоящее время я пытаюсь импортировать dll c ++ в скрипт на python. Сейчас я хочу импортировать очень простую DLL только с одной функцией (для тестирования). Прорабатывая подробные инструкции из Как создать DLL с помощью SWIG из Visual Studio 2010 , есть две ошибки компоновки, которые я не совсем понимаю.
Все работало до шага25 (с дополнительным определением препроцессора для generated _wrapper.cxx
для обхода strcpy
на данный момент). Как только я пытаюсь построить проект (все компилируется без проблем), я получаю следующий вывод от VS:
my_f.obj : error LNK2005: "int __cdecl cubes(int const &)" (?cubes@@YAHAEBH@Z) already defined in my_f.obj
Creating library C:\work\example64\my_f\x64\Release\_my_f.lib and object
C:\work\example64\my_f\x64\Release\_my_f.exp
C:\work\example64\my_f\x64\Release\_my_f.pyd : fatal error LNK1169: one or more multiply defined symbols found
Done building project "my_f.vcxproj" -- FAILED.
Я работаю с 64-битной системой и установленный python (3.6)версия x64 (без отладки).
Мой .i
файл выглядит следующим образом:
%module cube
%{
#include "my_f.cpp"
%}
%include my_f.cpp
И файл .cpp
с кодом является следующим:
#include "stdafx.h"
int cubes(const int &a)
{
return a * a*a;
}