今天重新整合整个组件的编译配置时,发现一个很奇怪的问题:
在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