2017-04-18 53 views
1

Pythonバージョン2.7.13、Sconsバージョン2.5.1、Visual Studio 2012 Expressはインストールされていますが、それを使用する。 コードブロックとMinGW-W64-builds-4.3がインストールされています。WindowsでC++コードをコンパイルするためにsconsを使用すると、sconsはコンパイルオプションとして "/ Fo"を追加します

Sconsを使用してWindowsでC++コード(networkitツールキット)をコンパイルします。 Sconsはコンパイルオプションとして "/ Fo"を追加します。このオプションはVC++でのみ動作し、使用しようとしているMinGWでは動作しません。 Sconsはなぜこのフラグを追加するのですか?私は自分のSconstructとリファレンスbuild.confファイルをチェックしており、このフラグが明示的に設定されているとは思われません。

My Sconstructファイルはこちら(http://www103.zippyshare.com/v/jSrMapGz/file.html)、build.confファイルは(http://www11.zippyshare.com/v/aXGQA5b5/file.html)です。

VC++の/ Foフラグと同じg ++の "-o"フラグを使ってコンパイルを行いたいと思っています。私は、スコーンズがこのフラグをどこから選んでいるのか分かりません:(

私は通常、VC++ 2012を使っていますが、プロジェクト用にnetworkitツールキットを使用する必要があります。まだ2015/2017 ++ VCに更新することはできません。あなたの助けを

ありがとう!

+0

NetworKitのページ(github)には、Windowsでのソフトウェアの構築が現時点ではサポートされていないことが記載されています。少なくとも、この作業にはまだ誰も成功していませんでした。 – dirkbaechle

+0

@dirkbaechle:この問題を解決してくれたおかげで、WindowsでNetworKitをコンパイルして使用することができました。 NetworKitニュースグループの詳細を掲載しました。 –

答えて

1

を私はあなたのSConstructファイルをチェックし、あなたは、環境変数」を残す

env = Environment() 

、としてビルド環境を初期化していますツール "を標準値に設定 "デフォルト"。後者の設定は、SConsが現在のシステムにインストールされているツール/コンパイラを見つけ出し、対応するビルダーをビルド環境に自動的に追加することを意味します。 Windowsでは、SConsは "mingw"より "vc"を優先します...これは現時点ではハードコードされています(コアソースの将来のバージョンでこれを変更しようとしています)。

"mingw"コンパイラがインストールされていることがわかっているので、明示的に使用したいと思うので、SConsに "mingw"だけを使いたいと伝えることです。 ページhttps://bitbucket.org/scons/scons/wiki/SconstructShortMingwWin32から次の例では、このための基本的なレシピを示しています。さらにヘルプについて、基準として

import os 

#don't use the default environment 
DefaultEnvironment(tools=[]) 
#create an environment that uses mingw tools 
env = Environment(ENV=os.environ, tools=['mingw']) 

#the target will be myprogram.exe (in win32) 
#the source files will be every file in the 
#current directory that matches "*.cpp" 
env.Program(target='myprogram', source = Glob('*.cpp')) 

、当社User GuideMan pageをチェックアウトご検討ください。

+0

お返事ありがとうございます。私は今何が起こるのか理解している。私はあなたの迅速で詳細な答えに感謝します。 –

関連する問題