我试图在Windows VS命令提示符中构建可执行文件和一些相关的dll.该项目附带一个scons文件,所以我只需在VS Cmd提示符中输入scons即可.
可执行文件正在“x86”VS Cmd提示符中构建.但是,运行时,可执行文件不是32位(使用任务管理器确认.)我的同事使用scons文件在他的64位计算机上构建相同的项目,并且他的可执行文件在我的计算机上是32位. (再次与任务经理确认)
dll是由32位JVM加载的,因为它们是64位,所以它们会抛出一个错误.我的同事dll不会.
我们无法弄清楚为什么我的计算机在“x86”VS环境中强制进行64位构建.有没有人有什么建议?
附: – 我有MS VS 2010,他有MS VS 2010 Express.
P.S.S. – 我有64位python,因此我的scons也是64位.然而,我的同事也是如此.
解决方法:
Scons通常会根据安装的内容确定要使用的工具链(即编译器)(如果没有明确指定).
Visual Studio 2010 Express只能构建32位二进制文件 – 即使在64位Windows上 – 这就是Scons的功能.使用32位和64位编译器的Visual Studio 2010“非表达式”,Scons可能会在64位Windows上进行64位构建.
要指定Scons项目的32位或64位版本,可以分别将TARGET_ARCH设置为“x86”或“x86_64”.另见Scons Construction Variables.