使用visual studio 2017命令行进行swig和建设项目

时间:2017-08-29 10:23:12

标签: python c++ windows visual-studio

我需要从SWIG生成的.cxx文件中创建.pyd。在谈到VS2017和命令行时,我有点像菜鸟,我希望得到一些帮助。

这是我到目前为止所做的:

Windows的SWIG设置

1)。下载anaconda(使用python 3.6 x64版本)

2)。下载VS社区版

- installed all the c++ extensions

3)。下载了FGDB API(Windows 2017):

https://github.com/Esri/file-geodatabase-api/blob/master/FileGDB_API_1.5.1/FileGDB_API_1_5_1-VS2017.zip

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

  • 文件夹
  • 中应该有.i,.py和make文件

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.

谢谢

1 个答案:

答案 0 :(得分:0)

这些库与您的Visual Studio版本

不兼容