gpt4 book ai didi

scons - 强制 SCons 在 64 位 Windows 上使用 32 位 MSVC 编译器

转载 作者:行者123 更新时间:2023-12-02 04:34:56 32 4
gpt4 key购买 nike

我正在尝试使用 Visual Studio 2010 中的 cl 构建 Mixxx 的 32 位版本。 Mixxx 使用 SCons 来构建。我的计算机是 Windows 7 64 位,安装了太多版本的 Visual Studio。

已关注 these instructions ,我尝试了 setenvvsvars 的各种组合和变体,但无论我做什么,我最终都会在这种情况下进入命令行:

> cl
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 16.00.40219.01 for 80x86
Copyright (C) Microsoft Corporation. All rights reserved.

usage: cl [ option... ] filename... [ /link linkoption... ]

好的,所以 cl 指向“版本 16,x86” - 太棒了。

> scons toolchain=msvs force32=1 winlib=%cd%\winlib\x86 sqlitedll=0 staticlibs=1 asmlib=0

[... bunch of output truncated, until we start using the compiler ...]

cl /Fores\qrc_mixxx.obj /c res\qrc_mixxx.cc /TP /Zc:wchar_t- /GL /MP /fp:fast /G
[truncated]
Microsoft (R) C/C++ Optimizing Compiler Version 18.00.21005.1 for x64
Copyright (C) Microsoft Corporation. All rights reserved.

(注意 - 我破解了 SCons 以删除 /nologo)什么? cl 现在如何表示“版本 18,x64”?它改变了我的环境吗?让我们来了解一下:

Terminate batch job (Y/N)? y

>cl
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 16.00.40219.01 for 80x86
Copyright (C) Microsoft Corporation. All rights reserved.

usage: cl [ option... ] filename... [ /link linkoption... ]

因此 cl 对于终端来说仍然意味着“版本 16,x86”。但 SCons 总是使用“最新版本,x64”。

(根据我对 Windows shell 的理解,这根本不可能。我杀死了脚本,所以它没有做任何清理。cl 的含义如何?像这样改变?)

我发现了一些提示:

在此基础上,我添加了

Environment(MSVC_VERSION = '10.0')
Environment(TARGET_ARCH = 'x86')
print 'hello world'

到SConstruct。我不知道 SCons,并且构建脚本并不简单,所以我可能做错了。不管怎样,SCons 仍然总是使用“最新版本,x64”。

最佳答案

您为我发布的环境 kwargs(Scons 2.3.4):

env = Environment(
MSVC_VERSION='12.0',
TARGET_ARCH='x86')

env.Program('src.cpp')

根据 http://scons.1086193.n5.nabble.com/32-and-64-bit-builds-on-MSVC-td25425.html,64 位程序的值应为 TARGET_ARCH='x86_64'MSVC_VERSION 的其他值也适用。

关于scons - 强制 SCons 在 64 位 Windows 上使用 32 位 MSVC 编译器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24810474/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com