关于VS 2008编译器和SCONS

时间:2012-06-15 10:05:16

标签: visual-studio-2008 compiler-construction scons

我有一个64位的Windows操作系统,我使用VS2008来编写我的程序。我注意到bin文件夹中有3个编译器:amd64,x86_amd64和bin目录中的一个(至少我认为是!)。我使用SCONS编译我的程序,当我在scons中使用--tree=all时,我可以看到它使用amd64编译器。我有一个Intel i5处理器,我没有指定在SCONS中使用哪个编译器,那么为什么它使用amd64

根据我的理解,如果您使用的是x86_amd64并且想要编译64位程序,那么amd64是否用于64位程序而不管CPU是什么?如果是那么案例那么bin目录中cl.exe的目的是什么?,有人可以向我解释这个吗?。

另外,有没有办法看看VS2008正在使用哪个编译器?我找不到任何信息。在构建日志中。

2 个答案:

答案 0 :(得分:1)

cl.exe控制编译器和链接器。 :)看到这里并学习:

http://msdn.microsoft.com/en-us/library/9s7c9wdw%28v=vs.80%29.aspx

我知道它与vs 2k5有关但仍然相关。

你说的其他一切都是正确的,尽管我能说出来。

我相信你可以在VS的属性中看到cl的命令行选项。从那里我相信如果你从实际的命令行运行该命令,你可以看到它发给编译器和链接器的后续命令,然后你可以看到它使用的编译器。

答案 1 :(得分:1)

如果需要更改SCons使用的C ++编译器,可以按照here修改CXX构造变量。 (我假设您正在使用C ++)

以下是我如何为我的一个项目执行此操作的示例:

env.Replace(CXX  = '/app/gcc/4.3.4/bin/c++')
env.Replace(CPP  = '/app/gcc/4.3.4/bin/c++')
env.Replace(CC   = '/app/gcc/4.3.4/bin/gcc')
env.Replace(LINK = '/app/gcc/4.3.4/bin/c++')

请注意,这些是linux路径,您必须相应地为Windows插入和格式化路径。这可以通过python os.path.join()函数轻松实现,如下所示:

import os
thePath = os.path.join('c:', 'dir1', 'subdir')

在这种情况下,thePath应为“C:\ dir1 \ subdir”,如您所见,您不必担心向前或向后斜杠。