【问题标题】:regarding VS 2008 compilers and SCONS关于 VS 2008 编译器和 SCONS
【发布时间】:2012-06-15 10:05:15
【问题描述】:

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

据我了解,x86_amd64 用于如果您在 32 位机器上并且想要编译 64 位程序,那么 amd64 是否用于 64 位程序而不管 CPU 是什么?,如果是这样的话那么 bin 目录中cl.exe 的用途是什么?,有人可以向我解释一下吗?

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

【问题讨论】:

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


    【解决方案1】:

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

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

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

    据我所知,你所说的一切都是正确的。

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

    【讨论】:

      【解决方案2】:

      如果需要更改 SCons 使用的 C++ 编译器,可以修改 CXX 构造变量,如 here 所述。 (我假设您使用的是 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”,所以如您所见,您不必担心正斜杠或反斜杠。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-08-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多