如何添加链接器标志以在scons中创建编译器特定的可执行文件

时间:2013-03-24 07:57:43

标签: scons

我正在使用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_name“”

链接时会接受“-output = program.abs”命令。我怎么能改变那一个。你能告诉我吗

当程序链接时/OUT:program.exe默认添加。

你能告诉我如何将其更改为“-output = program.abs”

谢谢

1 个答案:

答案 0 :(得分:3)

您要做的是cross-compile:在Renesas上编译Windows二进制文件。好像你所做的是在SCons中加载Windows VC10工具集(SCons自动执行此操作,除非告知不要)并且只更改了编译器二进制文件,因此SCons仍然使用VC10编译器/链接器标志,这似乎不兼容。我不得不用SCons做类似的事情,我在Linux环境中交叉编译了Cavium Octeon,但幸运的是,几乎所有的标志都是兼容的。

我对Renesas一无所知,但如果它的编译标志与另一个平台/工具集更相似,那么加载那些而不是Windows,如下所示我加载Linux gcc工具集。

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

SCons man page中查找Construction Environments以获取支持工具的完整列表。请注意,通过这样做,您将不再支持原生平台工具集Windows VC10

如果您找到类似的平台,并且仍需要更改某些编译器/链接器标志或选项,请查看更改相关的SCons Construction Variables。一些可能有用的是:CXXFLAGS, LIBSUFFIX, LINKFLAGS, OBJSUFFIX,PROGSUFFIXLINKFLAGS构造变量实际上是原始问题的答案。

我对scons renesas进行了谷歌搜索,并遇到了这个link,这可能也会有所帮助。