1.用VS2017打开VS2010创建的工程时出现问题

2.win7旗舰版32位系统每次运行Visual C++时,老出现编译错误:Compiling... Error spawning cl.exe

3.win7系统,第一次安装VS2008, 测试编译时出现 “无法启动程序 ,/d:..../.../.exe 系统找不到指定的文件

4.一个编程初学者,是用vs好呢?还是用emacs好?

用VS2017打开VS2010创建的工程时出现问题

VS一编译电脑系统就崩溃-vs2008编译慢

这个错误产生的原因在于,VS2010内部使用的编译器中,无论是32位还是64位的编译组件,都是纯IL的,也就是在64位系统中是 以64位模式运行,这与当前项目使用的平台设置无关。当编译的组件引用了一个标记为x86的库(仅32位模式)时,编译组件便会发生错误,无法加载,从而 导致编译失败。

这个问题发生在以下的情况中:

1,在64位操作系统上使用任何版本的MSBuild编译引用了仅32位组件的.Net 3.5的项目;?

2,使用64位MSBuild编译引用了仅32位组件的项目;?

3,使用32位MSBuild编译引用了仅64位组件的项目。

要解决这个问题,可以在解决方案管理器中,将所有的库的目标平台全部设置为 AnyCPU就可以了。

如果需要最终执行平台是X86只需将最终的执行文件目标平台设置为x86:

这样即可正常编译。

程序最终运行的平台,是根据可执行文件的设置来的,因此库中设置为AnyCPU不会影响到最终程序的运行,运行依然是在x86之下。

但是如果引用的DLL有仅32位的,那这种方法就不行了,解决办法,详见MSBuild 4.0 or Visual Studio 2010 may fail to compile a 32-bit application targeted for .Net Framework 3.5, 3.0 or 2.0 on x64 machine。

详细解决步骤如下:

1、关闭所有Visual Studio;

2、以管理员的身份打开VS2010的命令提示窗口;

3、更改目录至"<system_drive>:\Program Files (x86)\Microsoft SDKs\Windows\v<x.xx>\bin\”下面;

4、输入该命令corflags /32bit+ ResGen.exe /force,执行;

5、使用记事本打开<project_name>.csproj文件;

6、在PropertyGroup下添加<ResGenToolArchitecture>Managed32Bit</ResGenToolArchitecture>,保存,关闭退出。

现在在VS2010中重新打开原先的项目,编译通过,可以正确运行了!

步骤做完后就能运行的原因是,此时ResGen就是以32位模式运行了,而不是64位,因此便可以加载标记为仅32位的程序集了。代价是——它就再也无法编译标记为仅64位模式的程序集了。

对于该问题,还有另一个解决办法,打开项目属性页面,选择应用程序选项卡,设置目标框架为.NET Framework 4 。(由于框架限制,这个没测试)

win7旗舰版32位系统每次运行Visual C++时,老出现编译错误:Compiling... Error spawning cl.exe

这个可以解决的,用下面的方法试试,

启动VC时不要用图形界面,通过在命令提示符下输入:Msdev /useenv运行(注意啦/前面有个空格).它会强制使系统环境变量全高设置成正确值.而且,只需要使用一次这样的方式运行VC,以后再次通过双击图标的方式启动也不会有问题。

win7系统,第一次安装VS2008, 测试编译时出现 “无法启动程序 ,/d:..../.../.exe 系统找不到指定的文件

同学,你一个project里放了两个main函数当然得报错……“exam2.obj : error LNK2005: _main 已经在 exam1.obj 中定义。”

解决方法:要么再建个项目把单独2放进去跑,要么把1的main函数注释掉,或者把1暂时排除出项目(代码旁边的解决方案资源管理器视图上找到exam1.c,右键之,有一个“从该项目中排除”,再想包含时找最上面的菜单栏,“项目->显示所有项目”,再去解决方案资源管理器上找到它,右键“包含在项目中”。)

一个编程初学者,是用vs好呢?还是用emacs好?

这两个都是开发环境,也就是IDE。用什么开发环境取决于你用什么编程语言和工具。VS最适合微软系的语言,例如VC++、C#、VB等.NET语言;emacs虽然适合很多语言,但是是一种较轻量级的IDE,对每种语言的专精度并不高,虽然集成了项目管理、版本控制等功能,但是距离一种专精的大型IDE还是有差距的,只适合需要大量切换编程语言的程序员和项目。因此,如果你只用一种编程语言,那么就去找最适合这种编程语言的开发环境。比如C#用VS,Java用Eclipse,Python用Python(x,y)等。

熟悉linux系统对程序员来说还是很重要的,除了能帮助了解操作系统基础知识外,在服务器端编程与管理、嵌入式开发等领域都是必不可少的。