vs2010的$(OutPut)输出目录设置问题

今天重新整合整个组件的编译配置时,发现一个很奇怪的问题:

在VS2010中,把$(OutPut)设置为output\$(Platform)\fxhelper\$(Configuration)\

把中间目录$(IntDir)设置为$(OutPut),

设置完后编译发现每次生成的中间文件还是都在vs2010目录。

这问题百思不解,实在找不到答案,怎么设置都不对,如果把$(OutPut)设成其他,他又是生效的,

后来打开工程文件.vcxproj终于发现有一个地方的先后顺序貌似有问题,如下:

充中看到他的中间目录$(IntDir)的定义在输出目录$(OutPut)的定义之前,所以他的$(OutPut)变量认为是空的,

所以就不对了,我把他改成如下,立马就能达到我的要求了

我认为这个完全是微软的坑爹设计,用户在不用文本方式打开工程文件的话,怎么可能发现这样的bug。

从此记住一点,在vs中设置变量(特别是第一次设置该变量时),也要考虑下设置的顺序,不然他生成的工程文件中,

先后顺序不对,就全错了。错了后再修改其变量如上问中的$(OutPut),$(IntDir)也不会再生效了,只对$(OutPut)生效。

时间: 2024-11-13 06:55:25

vs2010的$(OutPut)输出目录设置问题的相关文章

编程经验:由于路径设置引起的VS2010不能正确输出文件的bug~

前段时间,偶然遇到这样一个bug,我把静态库项目都配置好了,编译一切正常,但是提示了一个警告: 1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppBuild.targets(1153,5): warning MSB8012: TargetName(stereo_vc9) 与 Library 的 OutputFile 属性值()不匹配.这可能导致项目生成不正确.若要更正此问题,请确保 $(OutDir).$(Targe

CMake 设置Target输出目录和后缀名

一. SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/../bin) 上面的语句能设置可执行文件的输出目录 在Win + VS环境下,会自动在你所设置的目录后面扩展一层 <CONFIG> 目录,所以最终生成的Debug版本程序会在 ${PROJECT_SOURCE_DIR}/../bin/Debug 目录下,Release版本程序会在 ${PROJECT_SOURCE_DIR}/../bin/Release 目录下. 在Linux + GCC环

修改文件输出目录后,提示配置错误(VS2010)

问题:C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppBuild.targets(990,5): warning MSB8012: TargetPath(E:\WorkPro\MisIntubation\Debug\MisIntubationUI.exe) 与 Linker 的 OutputFile 属性值(E:\WorkPro\MisIntubation\dist\MisIntubationUI.exe)不匹配.这可

VS2005 软件项目目录设置

场景说明 项目中集成多个工程,编译需要设置头文件,链接需要指定lib,运行依赖dll.不管是dll还是lib,还是exe都必须指定输出的目录,进行调试配置 应用说明 项目不允许使用绝对路径进行各种目录输出的设置,否则,下载源码的时候,都必须重新设置输出路径,所以一律采用相对路径.但是怎么知道工程当前的路径?还有创建工程的时候,填写工程名称的右下角会有一个勾选框:创建解决方案的目录,应该如何选择? 项目的编译时期的当前目录,就在源码所在的位置,创建解决方案的目录只是为了将解决方案.sln文件与源码

HDInsight 指定输出目录

基本语法 insert overwrite local directory '/example/demo/' select * from table; 可以格式化输出 insert overwrite local directory '/test_Select/output' row format delimited fields terminated by '\t' select * from table; 也可以导出到远程HDFS insert overwrite local directo

Matlab使用新发现1(小技巧:shell 命令、工程工作目录设置相关)

最近在调试一个基于Matlab的程序,在偶然间发现了几个比较有趣的技巧,给大家分享一下(很可能是太菜鸟了,没有涉及这方面,大方之家请勿见笑,对您有所帮助请点赞!) 1. Matlab语言是一种解释型语言(interpreter) 就像我在总结软件架构数据流时的一种:Interpreter / virtual machine (解释器/虚拟机),具体架构可以参看以下博文:http://blog.csdn.net/lg1259156776/article/details/46802107(解释性语言

更改gradle的java的class文件输出目录的结构

gradle虽然也是一个convention over configuration的工具. gradle是一个新的构建工作可以更改它的convention. //指定gradle的class文件输出目录,同时去掉java的文件夹 output.classesDir = 'WebContent/WEB-INF/classes'

IntelliJ IDEA修改Output输出缓存区大小【应对:too much output to process】

IntelliJ IDEA默认的Output输出缓存区大小只有1024KB,超过大小限制的就会被清除,而且还会显示[too much output to process],可通过如下配置界面进行修改(Settings→Editor→Console),单位为KB 如果需要禁用缓存区大小限制就需要修改配置文件idea.properties 配置文件中原有设置: #---------------------------------------------------------------------

hadoop配置(4) --在每次运行时自动删除输出目录

运行 Hadoop 程序时,为了防止覆盖结果,程序指定的输出目录(如 output)不能存在,否则会提示错误,因此运行前需要先删除输出目录.在实际开发应用程序时,可考虑在程序中加上如下代码,能在每次运行时自动删除输出目录,避免繁琐的命令行操作: Configuration conf = new Configuration(); Job job = new Job(conf); /* 删除输出目录 */ Path outputPath = new Path(args[1]); outputPath