4

我正在为不同的编译器使用 scons。vc10 和瑞萨编译器。如果我使用 env.program(---) 编译程序,则链接标志为

“链接 /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:编译一个Renesas二进制文件Windows。似乎您所做的是Windows VC10在 SCons 中加载了工具集(SCons 会自动执行此操作,除非被告知不要这样做)并且只是更改了编译器二进制文件,因此 SCons 仍在使用似乎不兼容的 VC10 编译器/链接器标志。曾经我不得不用 SCons 做类似的事情,我在 Linux 环境中交叉编译了 Cavium Octeon,但幸运的是,几乎所有的标志都是兼容的。

我对此一无所知Renesas,但如果它的编译标志更类似于另一个平台/工具集,则加载它们而不是 Windows,如下所示我加载 Linux gcc 工具集的位置。

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

Construction EnvironmentsSCons 手册页中查找支持工具的完整列表。请记住,通过这样做,您将不再支持本机平台工具集Windows VC10

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

我在谷歌上搜索了 scons Renesas,发现这个链接也可能有帮助。

于 2013-03-24T11:26:21.377 回答