Visual studio 2010 从另一个项目编译Visual Studio 2010项目
我已经创建了一个MFC项目,我想用它编译另一个MFC项目。 我正在使用Visual studio 2010 从另一个项目编译Visual Studio 2010项目,visual-studio-2010,build,mfc,system,Visual Studio 2010,Build,Mfc,System,我已经创建了一个MFC项目,我想用它编译另一个MFC项目。 我正在使用system()函数来执行此操作,但它不起作用 system("set PATH=""C:/Program Files (x86)/Microsoft Visual Studio 10.0/Common7/IDE"" && devenv C:/project_path/Project.sln /Build "); 首先,我设置Windows提示符的路径,以了解devenv命令,然后构建我的项目。 我已经在W
system()
函数来执行此操作,但它不起作用
system("set PATH=""C:/Program Files (x86)/Microsoft Visual Studio 10.0/Common7/IDE"" && devenv C:/project_path/Project.sln /Build ");
首先,我设置Windows提示符的路径,以了解devenv
命令,然后构建我的项目。
我已经在Windows命令提示符下测试了命令行,它运行正常。通过在我的代码中使用它,它无法识别devenv
命令。我做错了什么?如果有其他方法继续,请告诉我好吗?在执行命令时,“设置”状态是临时的。
退出系统命令时,所有修改都将丢失
如果要让它们持久化,必须像这样使用setx:
setx PATH=%PATH%;"C:/Program Files (x86)/Microsoft Visual Studio 10.0/Common7/IDE" /M
注意:别忘了结尾的/M
setX OLDPATH=%PATH% /M
setX PATH=%PATH%; .... /M
devenv C:/project_path/Project.sln /Build
setX PATH=%OLDPATH% /M
但是我不认为这是你想要做的,因为每次你执行station时,你都会再次添加额外的路径
我建议您最终将当前路径存储在类似OLDPATH的东西中,并在最后将其恢复
setX OLDPATH=%PATH% /M
setX PATH=%PATH%; .... /M
devenv C:/project_path/Project.sln /Build
setX PATH=%OLDPATH% /M
使用批处理文件。不能将SET与system一起使用,因为它只是修改当前环境(请阅读关于SETX的另一个答案) 我不想让这些环境变量在我的系统中是静态的,因为我经常安装2008、2010、2012和2013 设置所有必需的环境变量的最佳方法是 调用“%VS100COMNTOOLS%VSVARS32.BAT” 之后,无需使用路径即可轻松调用DEVENV。
但是所有行必须在一个批中,以便命令处理器使用一个环境。谢谢您的回答。M是什么意思?是分开命令吗?不是分开命令,但必须使用/M在系统环境中设置新值,否则命令的工作方式与标准集类似,并在本地环境中存储新值。