4

私はさまざまなコンパイラにsconsを使用しています。vc10およびルネサスコンパイラ。env.program(---)を使用してプログラムをコンパイルすると、リンクフラグが次のように取得されます。

"link / nologo / subsystem:console /pdb:project.pdb /OUT:program.exe D:\ build1 \ subdirA \ subdirA.lib D:\ build1 \ subdirB \ subdirB.lib main.obj"

VC10コンパイラで動作しています。しかし、ルネサス(私のマイクロコントローラー)コンパイラーの場合、次のようなエラーが発生します

「ファイルを開けません: "/ OUT:program.exe"」

リンク時に「-output=program.abs」コマンドを受け入れます。どうすればそれを変更できますか。教えていただけますか

プログラムがリンクしているとき/OUT:program.exeはデフォルトで追加されます。

これを「-output=program.abs」に変更する方法を教えてください

ありがとうございました

4

1 に答える 1

3

あなたがしたいことは呼ばれます:でバイナリをcross-compileコンパイルします。あなたが行ったことはSConsにツールセットをロードし(SConsはそうしないように言われない限りこれを自動的に行います)、コンパイラのバイナリを変更したようです。そのため、SConsはまだVC10コンパイラ/リンカーフラグを使用していますが、互換性はないようです。Linux環境でCaviumOcteonをクロスコンパイルしたSConsでも、同じようなことを一度やらなければなりませんでしたが、幸いなことに、ほとんどすべてのフラグに互換性がありました。RenesasWindowsWindows VC10

については何も知りませんRenesasが、コンパイルフラグが別のプラットフォーム/ツールセットに似ている場合は、次のようにWindowsの代わりにそれらをロードします。ImはLinuxgccツールセットをロードします。

env = Environment(tools = ['gcc'])

サポートされているツールの完全なリストについてConstruction Environmentsは、SConsのマニュアルページを参照してください。これを行うと、ネイティブプラットフォームツールセットがサポートされなくなることに注意Windows VC10してください。

同様のプラットフォームが見つかり、それでもいくつかのコンパイラ/リンカーフラグまたはオプションを変更する必要がある場合は、関連するSCons構築変数の変更を確認してください。役立つ可能性のあるものは次のとおりです。CXXFLAGS, LIBSUFFIX, LINKFLAGS, OBJSUFFIX,およびPROGSUFFIX。構築変数は、LINKFLAGS実際には元の質問に対する答えです。

私はsconsrenesasをグーグル検索しましたが、このリンクに出くわしました。これも役立つかもしれません。

于 2013-03-24T11:26:21.377 に答える