Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/155.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++;使用SWIG和Visual Studio 2017在python中导入DLL_Python_C++_Dll_Wrapper_Swig - Fatal编程技术网

C++;使用SWIG和Visual Studio 2017在python中导入DLL

C++;使用SWIG和Visual Studio 2017在python中导入DLL,python,c++,dll,wrapper,swig,Python,C++,Dll,Wrapper,Swig,我目前正尝试将一个C++ DLL导入到Python脚本中。现在我想导入一个非常简单的dll,它只有一个函数(用于测试)。在我阅读详细的说明时,有两个链接错误我不太理解 在第25步之前,一切都正常(为生成的_wrapper.cxx添加了一个预处理器定义,暂时绕过strcpy)。 一旦我尝试构建项目(一切编译都没有问题),我就会从VS获得以下输出: my_f.obj:错误LNK2005:“int u cdecl多维数据集(int const&)”(?多维数据集@@YAHAEBH@Z)已在my_f.o

我目前正尝试将一个C++ DLL导入到Python脚本中。现在我想导入一个非常简单的dll,它只有一个函数(用于测试)。在我阅读详细的说明时,有两个链接错误我不太理解

在第25步之前,一切都正常(为
生成的_wrapper.cxx
添加了一个预处理器定义,暂时绕过
strcpy
)。 一旦我尝试构建项目(一切编译都没有问题),我就会从VS获得以下输出:

my_f.obj:错误LNK2005:“int u cdecl多维数据集(int const&)”(?多维数据集@@YAHAEBH@Z)已在my_f.obj中定义
创建库C:\work\example64\my\u f\x64\Release\u my\u f.lib和对象
C:\work\example64\my\u f\x64\Release\u my\u f.exp
C:\work\example64\my\u f\x64\Release\u my\u f.pyd:致命错误LNK1169:找到一个或多个多重定义符号
完成构建项目“my_f.vcxproj”——失败。
我使用的是64位系统,安装的python(3.6)是x64版本(尽管没有调试)

我的
.i
文件如下所示:

%模块多维数据集
%{
#包括“my_f.cpp”
%}
%包括我的f.cpp
带有代码的
.cpp
文件如下所示:

#包括“stdafx.h”
整数立方体(常数整数和a)
{
返回a*a*a;
}

我想我找到了解决办法

因为我没有
.h
文件,所以有一个函数声明,但没有定义。添加头文件或将函数声明为内联函数有助于避免此编译错误