我需要从SWIG生成的.cxx文件中创建.pyd。在谈到VS2017和命令行时,我有点像菜鸟,我希望得到一些帮助。
这是我到目前为止所做的:
Windows的SWIG设置
1)。下载anaconda(使用python 3.6 x64版本)
2)。下载VS社区版
- installed all the c++ extensions
3)。下载了FGDB API(Windows 2017):
4)。设置Python环境变量:
PYTHON_INCLUDE: C:\ProgramData\Anaconda3\include
PYTHON_LIB: C:\ProgramData\Anaconda3\libs\python36.lib
5)。下载并解压缩Swig
6)。将swig路径添加到PATH环境变量
7)。从google hosting或github下载file-geodatabase-api文件。 https://storage.googleapis.com/google-code-archive-source/v2/code.google.com/file-geodatabase-api-python-wrapper/source-archive.zip
8)。创建文件夹:C:\ fgdb_code
9)。将步骤#7中的文件放在此文件夹中
10)。解压缩步骤#8中文件夹中步骤3的文件
c:\fgdb_code\FGDB
生成.cxx文件
11)。以管理员身份打开命令行窗口(可能不需要管理员)
12)。导航到c:\ fgdb_code文件夹
13)。运行:swig -python -IFGDB / include -c ++ filegdbapi.i
This generates a .cxx file
``` 输出消息:
FGDB\include\Util.h(819) : Warning 312: Nested union not currently supported (ignored).
FGDB\include\Util.h(838) : Warning 312: Nested union not currently supported (ignored).
FGDB\include\Util.h(843) : Warning 312: Nested union not currently supported (ignored).
FGDB\include\Util.h(849) : Warning 312: Nested union not currently supported (ignored).
FGDB\include\Geodatabase.h(307) : Warning 503: Can't wrap 'FileGDBAPI::CreateGeodatabase' unless renamed to a valid identifier.
FGDB\include\Geodatabase.h(308) : Warning 503: Can't wrap 'FileGDBAPI::OpenGeodatabase' unless renamed to a valid identifier.
FGDB\include\Geodatabase.h(309) : Warning 503: Can't wrap 'FileGDBAPI::CloseGeodatabase' unless renamed to a valid identifier.
FGDB\include\Geodatabase.h(310) : Warning 503: Can't wrap 'FileGDBAPI::DeleteGeodatabase' unless renamed to a valid identifier.
```
从VS 2017生成.pyd文件
这是我被卡住的地方 我已经尝试创建一个用于生成DLL的新VS项目,但我似乎无法使接口工作(我发现VS工作室界面有点令人生畏)。有没有办法在没有创建项目的情况下通过命令行执行此操作?如果是这样,有人可以就如何做到这一点提供一些指导吗? 我只需要.i和.cxx文件来编译代码。
更新 从VS 2017生成.pyd文件
14)。打开Visual Studios
15)。选择文件 - >从现有代码
16)。选择c ++
17)。输入以下内容:
- Project file location: folder from step #8
- project name: filegdbapi
- Check add files (should be checked by default)
- Click Next
18)。对于项目类型:动态链接库(DLL)项目
19)。按完成
20)。构建项目
失败:
1>------ Build started: Project: filegdbapi, Configuration: Release x64 ------
1>XSD : error : The CodeDom provider type "Microsoft.VisualC.CppCodeProvider, CppCodeProvider, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" could not be located.
1>
1>If you would like more help, please type "xsd /?".
1>Done building project "filegdbapi.vcxproj" -- FAILED.
谢谢
答案 0 :(得分:0)
这些库与您的Visual Studio版本
不兼容