問題タブ [scons]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - sconsを使用して、事前に構築されたライブラリにどのようにリンクしますか?
私は最近、sconsを使用していくつかの小さなクロスプラットフォームプロジェクトを構築し始めました。これらのプロジェクトの1つは、事前に構築された静的ライブラリとリンクする必要があります...これはどのように行われますか?
makeでは、Windowsに「link / LIBPATH:whereeverlibstxxl.lib」を追加し、unixに「stxxl.a」を追加するだけです。
visual-c++ - 致命的なエラーC1083:インクルードファイルを開くことができません:'Windows.h':およびscons
今日は正式にC++での私の最初の日です:P
オープンソースのEnsoProjectを入手したいので、Visual C ++ 2005ExpressEditionとMicrosoftPlatformSDK for Windows Server2003SP1をダウンロードしました。
そのため、sconsをインストールした後、コンソールに移動し、sconsを使用してコンパイルしようとしましたが、次のエラーが発生しました。
これらのリンクを確認した後:
私は自分のインストールを次のように構成することができました:
そして、このスクリプトを実行する
そして、IDEで以下のファイルをコンパイルすることができました。
しかし、それでもコンソールでその例外が発生します。誰かがsconsの経験がありますか?
編集
実際に(そして私はあなたにこれを言うのを忘れました)私はリンク「VisualStudio2005コマンドプロンプト」でコマンドプロンプトを開始しました。
これには環境変数のパスが含まれると思います。それらを印刷した後、私はそれがしなかったことに気づきました:
そして、それらは存在しなかったので、私はこの.batファイルを作成しました:
それでも、sconsはvarsを取らないように見えます... :(
python - Python から dll を読み込む
ここで見つけたソースコードからPythonアプリケーションを構築しています
Web を検索していくつかの問題をコンパイルして修正することができましたが、この時点で立ち往生しています。
アプリケーションを実行すると、このメッセージが表示されます。
代替テキスト http://img511.imageshack.us/img511/4481/loadfr0.png
この python アプリは、swig を使用して c/c++ コードにリンクします。
私は VC++2005 Express Edition を持っており、scons と Python 2.5 と共にコンパイルするのに使用していました (そして 2.4 も試しました)。
ロードしようとしているdllは「msvcr80.dll」です。これは、メッセージが「msvcr80.dll」になる前に見つからないか、そのようなものであるため、取得してwindow32フォルダーにドロップしました。
私がここで読んだことについて: http://msdn.microsoft.com/en-us/library/ms235591(VS.80).aspx
解決策は、マニフェストと dll ファイルを使用して MT を実行することです。私はすでにそれを行いましたが、どちらも機能しません。
誰かが私を正しい方向に向けることができますか?
これは、マニフェスト ファイルの内容です。
今、Python 2.6 を試してみますが、問題を理解できるかどうかはよくわかりませんが、Python 2.5 と Python 2.5 の .exe には、.exe ファイル内に文字列 "MSVCR71.dll" が含まれていました。しかし、おそらくこれは何の関係もありません。
ps。すべてがjarファイルと同じくらい簡単だったら:(
これは完全を期すためのスタック トレースです。
build-process - scons で CPU アーキテクチャ (32 ビット / 64 ビット) を検出していますか?
sconsで CPU アーキテクチャを検出するための「標準」プラグインはありますか?
ところで、この質問はすでにここでより一般的な形式で尋ねられました...誰かがこの情報を scons に組み込むためにすでに時間を割いているかどうか疑問に思っています。
c++ - プロジェクトにビルド出力をSconsと同じディレクトリに配置するにはどうすればよいですか?
バックグラウンド
2つのサブプロジェクトを持つ基本的なC++サンプルプロジェクトを設定して、Sconsを試しています。
- Prj1はPrj2に依存するEXEです
- Prj2は、いくつかの関数をエクスポートするDLLです。
私が遭遇している問題は、ライブラリがその.obj、.pdb、.lib、.dllなどのファイルをSConscriptファイルと同じディレクトリに構築し、EXEがそのファイルをSConscriptと同じディレクトリに構築することです。アプリケーションは、Prj2依存関係とそれ自体の両方を正常に構築します。ただし、他のディレクトリにあるために必要なライブラリが見つからないため、結果のEXEを実行することはできません。
質問
バイナリとデバッグ情報を共通のディレクトリに出力して実行およびデバッグできるようにするために、依存関係のある複数のプロジェクトを取得するにはどうすればよいですか?
考えられる解決策
これは私がこれまで考えてきたことです:
- VariantDir(以前はBuildDirと呼ばれていました)を使用してみましたが、これは機能しないようです。おそらく私はここで何かを台無しにしています。
- コンパイラとリンカに(たとえばFo / Fdを介して)ファイルをドロップする場所を明示的に伝えることができる可能性があります(これが最善または唯一の解決策ですか?)
- 結果のバイナリに対してコピーコマンドを実行します(これはハックのようであり、管理/保守するのが非常に面倒です)
アップデート
以下のファイル構造とファイルの内容を更新して、実用的なソリューション全体を反映させました。彼の洞察に悲しんでくれてありがとう。
指示
この構成では、残念ながら、ビルドディレクトリにcdしてから、以下のコマンドを実行してビルドを実行する必要があります。これを回避するには、適切に機能するエイリアス設定を取得する必要があります。
ファイル構造
SConstruct
scons_helper.py
Prj1のSConscript
Prj2のSConscript
c++ - Sconsで相対パスを使用してビルドターゲットのエイリアスを作成するには?
バックグラウンド
2 つのサブプロジェクトを持つ基本的な C++ サンプル プロジェクトをセットアップして、Scons を試しています。
- Prj1 は Prj2 に依存する EXE です。
- Prj2 は、一部の関数をエクスポートする DLL です。
SConstruct および SConscript ファイルのディレクトリ構造と内容は、こちらで確認できます。
問題
私が直面している問題は、コマンド ラインからこれらのターゲットをビルドするには、ビルド ディレクトリへの相対パスとプラットフォーム固有のファイル拡張子の両方を指定する必要があることです。
たとえば、Prj1 をビルドするには、次のことを行う必要があります。
同様に、Prj2 をビルドするには、次のことを行う必要があります。
質問
相対パスとプラットフォーム固有のファイル拡張子を指定せずに、SCons にこれらのプロジェクトをビルドさせるにはどうすればよいですか?
希望:
考えられる解決策
- エイリアスを使用 - これは私が望んでいるものだと確信していますが、明らかに何かを台無しにしています。私は成功せずに次のことを試しました:
参考文献
python - scons : src と include ディレクトリ
誰かが次の構造を許可するscons構成ファイルを提供できますか
最上位では、o と最終的な exe が必要です。
python - SCons: ターゲットが他のリポジトリでビルドされている場合、別のリポジトリのターゲットへのリンクを作成するにはどうすればよいですか?
ファイルに を追加するRepository
と( link )、リポジトリ内のいずれかのターゲットがこの別のリポジトリでビルドされている (そして依存関係が変更されていない) 場合、ターゲットはビルドされません。これは非常にクールです。残念ながら、特定の場所に配置されているターゲットに依存するツールがいくつかあります。他のリポジトリに既にターゲットがビルドされているため、ローカルでビルドしないことを決定した場合、現在のリポジトリにこの他のリポジトリのターゲットへのリンクを作成するにはどうすればよいですか?SConstruct
SCons
SCons
編集:SCons
ファイルを他のリポジトリからローカルリポジトリにコピーする「ローカル」機能があるようです(
リンク)。これらのターゲットは大きく、多くの冗長性があるため、本当に必要なのはソフトリンクです。
python - SCons の問題 - Variables クラスを理解していない
プロジェクトの SConstruct ビルド ファイルに取り組んでおり、オプションが廃止されているため、オプションから変数に更新しようとしています。しかし、変数の使い方がわかりません。おそらくこれに貢献しているPythonの経験はありません。
たとえば、私はこれを持っています:
しかし、私はエラーが発生します:
これがどのように機能するのかわかりません
python - 複数行のビルドコマンドを生成するにはどうすればよいですか?
SConsでは、私のコマンドジェネレーターは途方もなく長いコマンドラインを作成します。ビルドログで読みやすくするために、これらのコマンドを複数の行に分割できるようにしたいと思います。
たとえば、次のようなSConsciptがあります。
実行すると、次のようになります。
os.systemとos.popenを使用してPythonシェルでこれを行うと、読み取り可能なコマンド文字列が取得され、サブシェルプロセスがすべての行を1つのコマンドとして解釈します。
SConsでこれを行うと、各行が一度に1つずつ実行されますが、これは私が望んでいることではありません。
また、コマンドをシェルスクリプトに組み込んでから、シェルスクリプトを実行することは避けたいと思います。これは、文字列をエスケープする狂気を生み出すからです。
これは可能ですか?
更新:
クールナペ、
$CCCOMSTRについての手がかりをありがとう。残念ながら、私はSConsがすぐにサポートする言語を使用していないため、独自のコマンドジェネレーターを作成しています。ジェネレーターを使用して、SConsに次のことを実行させるにはどうすればよいですか?
しかし、印刷
?