C++;使用SWIG和Visual Studio 2017在python中导入DLL
我目前正尝试将一个C++ DLL导入到Python脚本中。现在我想导入一个非常简单的dll,它只有一个函数(用于测试)。在我阅读详细的说明时,有两个链接错误我不太理解 在第25步之前,一切都正常(为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
生成的_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
文件,所以有一个函数声明,但没有定义。添加头文件或将函数声明为内联函数有助于避免此编译错误