我正在使用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”
谢谢
答案 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,
和PROGSUFFIX
。 LINKFLAGS
构造变量实际上是原始问题的答案。
我对scons renesas进行了谷歌搜索,并遇到了这个link,这可能也会有所帮助。