SConsを使用してビルドシステムを準備しようとしています。私は、コード生成段階ではclang
を使用し、それ以外の場合にはカスタムコンパイラツールチェーンを使用したいと考えています。コード生成とアセンブリに別々のツールを使用するSConsの設定
デフォルトでは、SCons構成には、アセンブリの(.s)
ファイルが生成される明示的な手順はありません。
これを回避するために、自分でBuilder
を作成し、アセンブリファイルを生成しました。
code_generator = Builder(action = '$CC -$LOTS_OF_FLAGS -S $SOURCE -o $TARGET', suffix = '.s')
env.Append(BUILDERS = {'CodeGenerator':code_generator})
私はその後、私のソースファイルでこのBuilder
を使用してProgram
に結果NodeList
を渡します。
これは、変数を変更しないとうまく動作します。 gcc
を使用して実行可能ファイルを取得します。
ただし、SConsが(env.Replace(CC='clang')...
を使用して)カスタムツールチェーンを使用するように適切な変数を置き換えると、1つのアセンブリファイルしか生成されません。私のカスタムBuilder
は、他のファイルに呼び出され、SConsはどのように私はSConsは、すべてのファイル上でBuilderを実行し、リンクするためのそれらの オブジェクトファイルを含めることができます唯一のオブジェクトファイル(明らかに失敗した)
- とリンクしようとしていません?
- は何をしようとしているのですか?私はSConsと仕事を始めたばかりです。
:foo.cのとbar.cには、出力を生成します。しかし、マニュアルページの余分な文書についての発言に感謝します。あなたは正しい、私はユーザーガイドを参照していた。私が成功すれば、さらに調査して報告します。 – Buzzy
ご使用のsconsのバージョンは? –
MacでHomebrewを使用してインストール:スクリプト:v2.1.0.r5357 エンジン:v2.1.0。r5357 – Buzzy