Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 2008 编译并链接Visual Studio 2008中的32位程序_Visual Studio 2008 - Fatal编程技术网

Visual studio 2008 编译并链接Visual Studio 2008中的32位程序

Visual studio 2008 编译并链接Visual Studio 2008中的32位程序,visual-studio-2008,Visual Studio 2008,昨天我问了同样的基本问题,但还不足以弄清楚这个问题。基本上,这就是我现在在构建应用程序时遇到的错误: .\Debug\HotSync.obj:致命错误LNK1112:模块计算机类型“x64”与目标计算机类型“X86”冲突 我假设这意味着我正在编译64位对象模块,然后尝试链接32位可执行文件。那么这是编译器本身的问题,还是给编译器的选项的问题?这个项目以前是一个VC++2003项目,所以一直是32位的 我可能会提到,我能找到的cl.exe的唯一版本是VC\bin的amd64和x86-amd64子目

昨天我问了同样的基本问题,但还不足以弄清楚这个问题。基本上,这就是我现在在构建应用程序时遇到的错误:

.\Debug\HotSync.obj:致命错误LNK1112:模块计算机类型“x64”与目标计算机类型“X86”冲突

我假设这意味着我正在编译64位对象模块,然后尝试链接32位可执行文件。那么这是编译器本身的问题,还是给编译器的选项的问题?这个项目以前是一个VC++2003项目,所以一直是32位的

我可能会提到,我能找到的cl.exe的唯一版本是VC\bin的amd64和x86-amd64子目录。我必须手动将其中一个路径添加到“VC++目录”列表中,但结果都是相同的


我的主机电脑是运行64位Windows7的AMD,但我希望我仍然可以构建运行XP的程序。有人知道如何执行此操作吗?

Visual Studio 2008的默认安装应该将x86
cl.exe和相关的编译器二进制文件放入:

C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\
在Win7 x64系统上

如果您没有<代码> C.exe < /C> >(即,‘上面’的<代码> AMD64 < /COD>或<代码> X86YAMD64 < /代码>目录),那么您可能需要考虑重新安装VisualStudio.

请注意,
amd64
目录中的编译器以x64系统为目标,并且它本身是为在x64系统上运行而构建的。
x86\u amd64
目录中的编译器也针对x64系统,但其本身是x86二进制文件(即,它从x86 32位系统交叉编译到x64)

您还应该在VisualStudio2008程序组(或Win7中可能称为的任何程序组)中有一条捷径:

打开一个命令窗口,该窗口最初显示:

Setting environment for using Microsoft Visual Studio 2008 x86 tools.
在没有选项的情况下运行
cl
命令应该是这样的:

针对80x86的Microsoft(R)32位C/C++优化编译器版本15.00.21022.08

再次-如果这些都不适合你,你需要重新安装


也要确保所有在构建中涉及的项目的配置都设置为Win32,而不是X64。

< P>显然,“问题”是,我只安装了C++,因为这就是我计划使用的所有内容。但出于某种原因,我只需要在C#安装中安装cl.exe。那就飞吧!我没有进行完整安装以避免混乱,这对我来说是正确的。

我希望这不是因为我使用了VS 2008“标准版”而不是“专业版”,但我得到的印象是,由于我将其安装在64位Win7 Professional系统上,它不必费心安装用于创建32位应用程序的组件。此产品的设置几乎没有自定义选项,因此很难确切地说出它在做什么。我将尝试重新安装它,看看会发生什么。对不起,但我的记忆力最近没有那么好。显然,自从我使用它以来,我就解决了这个问题。这真的令人惊讶,尽管每次我安装VS时,我都会安装所有的.NET内容,所以我从来没有遇到过这个问题。下一次我做一个安装,我会尝试记住只做C++,看看我得到什么(但说实话,我可能会忘记所有这一切……)。同样的问题在这里。x86 cl.exe不存在于VC\bin中(而amd64版本存在于VC\bin\amd64和VC\bin\x86\u amd64目录中)。我也只安装了C++。添加C#后,添加了x86 cl.exe。
Setting environment for using Microsoft Visual Studio 2008 x86 tools.