Visual studio 2008 关于VS 2008编译器和SCON

Visual studio 2008 关于VS 2008编译器和SCON,visual-studio-2008,compiler-construction,scons,Visual Studio 2008,Compiler Construction,Scons,我有一个64位的windows操作系统,我使用VS2008来编写我的程序。我注意到bin文件夹中有3个编译器:amd64、x86_amd64和bin目录中的一个(至少我认为是这样!)。我使用SCON编译程序,当我在SCON中使用--tree=all时,我可以看到它使用的是amd64编译器。我有一个Intel i5处理器,但我没有指定在SCON中使用哪个编译器,所以为什么它使用amd64 据我所知,如果您在32位机器上并且想要编译64位程序,则使用x86\U amd64,amd64也用于64位程序

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

据我所知,如果您在32位机器上并且想要编译64位程序,则使用
x86\U amd64
,amd64也用于64位程序,而不考虑C.p.U?如果是这样,那么bin目录中的
cl.exe
的用途是什么?有人能向我解释一下吗


另外,是否有任何方法可以查看VS2008正在使用哪个编译器?。我找不到任何信息。在构建日志中

cl.exe控制编译器和链接器。:)请参见此处和learneth:

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

从我所能看出,你所说的其他一切都是正确的


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

< P>如果你需要改变SCons使用的C++编译器,你可以修改<代码> CXX/COD>构造变量。(我假设您使用的是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')
在这种情况下,路径应该是“C:\dir1\subdir”,这样您就可以看到,您不必担心向前或向后斜杠