2017-08-29 63 views
0

SWIGから生成された.cxxファイルから.pydを作成する必要があります。私はそれがVS2017とコマンドラインに来るとき、少しの助けを望んでいます。ビジュアルスタジオを使ってswigとビルドプロジェクト2017コマンドライン

SWIGのセットアップをWindowsの

1)のために:ここで

は、私がこれまで行っているものです。 anacondaをダウンロードする(python 3.6 x64版を使用)

2)。 VSコミュニティバージョン

- installed all the c++ extensions 

3)をダウンロードしてください。ダウンロードしたFGDBのAPI(窓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)。 PATH環境変数にswigパスを追加する

7)。 google hostingまたはgithubからファイル-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およびフォルダ

9)でメイクファイルがあるはずです。ステップ7からのファイルをこのフォルダに置きます

10)。 .CXXファイル

11)を生成する8

c:\fgdb_code\FGDB 

ステップ#からフォルダのステップ#3からファイルを解凍します。管理者としてコマンドラインウィンドウを開きます(管理者は必要ありません)

12)。 c:\ fgdb_codeフォルダ

13)に移動します。ファイル名を指定して実行:VS 2017から.pydファイルを生成

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. 

`` `

:-IFGDB /含ま-C++ filegdbapi.i

This generates a .cxx file 

` `` 出力メッセージ-pythonがぶ飲み

これは私が立ち往生する場所です。
私はDLLを生成するための新しいVSプロジェクトを作成しようとしましたが、私はインターフェイスを動作させることができませんでした(私はVSスタジオのインターフェイスを少し掘り下げています)。プロジェクトを作成せずにコマンドラインでこれを行う方法はありますか?もしそうなら、誰かが私がこれをどうやってできるかについていくつかの指針を与えることができますか?
コードをコンパイルするのに.iと.cxxファイルが必要です。

UPDATE

14 VS 2017から.pydファイルを生成します。オープンビジュアルスタジオ

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のバージョンと互換性がありませんありがとう、それは私があなたの正確なと、意味VS2017 – JabberJabber

+0

言います例えば、古い14.1 MSVCのバージョンでは、あなたのプログラムをポータブルにすることはできませんでした。この場合、ライブラリはコンパイラと互換性がありません – MinCarve

+0

これをコンパイルするために必要なものを見つけ出す方法はありますか? – JabberJabber

関連する問題