2008-12-02 19 views
12

我有一个混合的VB.NET和C++项目的解决方案。使用Visual Studio 2005时,您可以设置“工具 - >选项 - >项目和解决方案 - > VC++目录”以帮助编译器找到您的包含文件。当用MSBuild构建相同的解决方案时,我看不到如何传递这些设置。没有指定此路径,C++将不会编译。从Visual Studio构建这个解决方案时,它完美地构建。如何设置MSBuild VC++目录

什么是通过此路径为MSBUild的方式?

编辑:看起来像MSBuild不会将路径(或/ u开关)传递给vcbuild。从VCBuild开始,而不是依赖。

+0

随着Visual 2010的工作更符合预期,因为使用了用户属性目录。有没有更多的需要使用环境变量 – CharlesB 2010-11-17 14:58:26

+1

最新版本VS2013,请参阅我的答案在线程: http://stackoverflow.com/questions/15654002/adding-additional-library-and-include-paths-when-compiling-从命令行/ 28103688#28103688 – zhifac 2015-01-23 05:45:15

回答

13

要设置包含目录,可以将它们添加到INCLUDE环境变量中。您使用与PATH环境中相同的格式。变量 - 你用分号分隔路径。

要设置库目录 - 可以通过将它们放入LIB环境变量中,以类似的方式进行设置。

要设置环境变量,只需右键单击“我的电脑”,选择“属性”。然后你进入“高级”选项卡,并有一个名为“环境变量”的按钮。

或者,你可以从一个批处理脚本运行的MSBuild,在这种情况下,调用的MSBuild之前,您可以设置包含和LIB变量,就像这样:

set INCLUDE=C:\Libraries\LibA\Include 
set LIB=C:\Libraries\LibA\Lib\x86 
4

...,你也可能会喜欢追加%包含%和%LIB%到您的变量,以避免他们的覆盖

set INCLUDE=C:\Libraries\LibA\Include;%INCLUDE% 
set LIB=C:\Libraries\LibA\Lib\x86;%LIB%