新春签到免费送会员,每天签到一次,送一天会员,活动截止时间不定,随时终止!机会不要错过哦!
首页  >   经验  >   VS2017编译警告MSB8027解决办法

VS2017编译警告MSB8027解决办法

codexia 2018-04-13 16:28:07 683
VS   2017   MSB8027  
简介当在编译的时候,VS2017发出警告MSB8027,意思是输出的目录相同,导致多个相同的文件生成的中间文件会相互覆盖,从而导致错误。
    当你在一个项目里,两个不同的文件夹里,创建了相同的文件,在VS2017里显示为两个不同的目录,在文件夹里也确实在不同的文件夹里。但是当在编译的时候,VS2017发出警告MSB8027,意思是输出的目录相同,导致多个相同的文件生成的中间文件会相互覆盖,从而导致错误。
    那么这个问题如何解决呢?是改文件名吗?当然,改文件名是可以解决的,因为这样让每一个代码文件都有不一样的文件名,就不存在覆盖的问题。
    但是这个并不是最好的解决办法,因为你通过了目录结构来区分代码文件,尽管两个代码文件相同,但是因为路径不同,是可以区分开的。所以改名字是可以解决,但是不是最优雅的方式。
    解决的办法其实也很简单,但是我们需要明白其中的道理。其实编译默认的输出都是将中间文件放在一个目录,所以才会让多个相同文件名的中间文件重叠了,产生了覆盖。那么VS2017既然作为一个工具,相当强大的一个工具,绝对不会弱智到固定输出目录的。所以我们需要在VS2017的项目属性设置里下手。

        我们打开项目属性页,找到[C/C++ --> 常规 --> 对象文件名],默认的值就是输出的中间文件的命名规则。默认的命名规则是【$(IntDir)%(filename).o】,这个表名输出的名字就在默认的初始目录下,名字就是源文件名称,再加一个后缀。如下图所示:

    VS2017编译警告MSB8027解决办法

    我们现在设置的是多个不同的目录,目录下有同名的代码文件,按照这个规则,默认的中间文件目录是一样的,再看文件名,也是一样的,最后肯定是重叠了。要避免这种情况,我们只需要在这个命名规则上加上目录即可。
    加入相对路径的方法也就是在默认的目录和文件名中间加入相对路径的变量,这样就可以按照目录来输出中间文件,就不会重叠了。命名规则修改为下面这样:
$(IntDir)/%(RelativeDir)/%(filename).o
    然后确定即可。再编译的时候就没有MSB8027警告了。
文章标题:VS2017编译警告MSB8027解决办法
文章地址:http://www.cjjjs.com/article/2018413111743815
转载到个人博客,请在文末带上右侧内容(含超链接):本文转载自:VS2017编译警告MSB8027解决办法
收藏 0 点赞 0

相关阅读

  1. VS2017编译警告MSB8027解决办法
  2. VS调试Linux时遇到加载符号模块的问题
  3. VS2017编译Linux项目时添加不常用的命令选项方法
  4. VS2017开发Linux程序时解决未定义的标识符问题办法
  5. VS2017提示警告suggest parentheses...
  6. VS2017的Linux项目编译和链接的相关说明
  7. VS2017编辑框设置背景图片方法分享
  8. VS2017控制台程序显示中文为乱码的问题解决办法
  9. VS2017开发Linux项目的过程:从创建项目到调试运行全程指导
  10. VS2017 Linux.targets error:g++ exited with code127
分享到:
分享文章[VS2017编译警告MSB8027解决办法]到QQ空间

相关阅读

  • VS2017编译警告MSB8027解决办法

    当在编译的时候,VS2017发出警告MSB8027,意思是输出的目录相同,导致多个相同的文件生成的中间文件会相互覆盖,从而导致错误。

  • VS调试Linux时遇到加载符号模块的问题

    C++技术网已经用心解答了用户提出的问题【VS调试Linux时遇到加载符号模块的问题】,如还有问题,请继续在文章底部留言交流,直到完全懂了为止。

  • VS2017编译Linux项目时添加不常用的命令选项方法

    平时我们很少在命令行里加入选项,所以大家对这个命令行添加不熟悉,可能不知道在哪里添加,所以分享一下。这里分享的是如何在VS2017添加-fPIC选项。

  • VS2017开发Linux程序时解决未定义的标识符问题办法

    使用VS2017开发Linux程序,还是一个比较新鲜的体验。这个是一种Windows程序员转Linux程序员才会有的体验。然而VS2017总会报各种未定义的标识符,程序却能够正常的编译运行。确实让人很不爽,今天就是为了分享这个问题的解决方法。

  • VS2017提示警告suggest parentheses...

    warning: suggest parentheses around assignment used as truth value。如果你能够看懂这个英文的警告的意思,其实也就很明确知道怎么改代码了。如果不知道,就来看看吧。

  • VS2017的Linux项目编译和链接的相关说明

    本来觉得这个事比较简单,就懒得写的。然后在项目中却遇到了这个问题,找了半天才解决。然后不久,群里的群友也问了同样的问题。可能是大家对VS2017不熟悉吧。另外,VS2017写Linux项目更是不熟悉。所以还是写一下。

  • VS2017编辑框设置背景图片方法分享

    之前看网上一些人发的VS编辑器上设置了背景图,是一个卡通动画的人物,挺萌的。然后我就把我的女神设置为背景了。哈哈哈

  • VS2017控制台程序显示中文为乱码的问题解决办法

    今天会员【HiroLCS】提到一个问题,就是在VS2017新建的C/C++控制台程序显示的中文竟然是乱码。编码问题不是一两句话说的清楚的,为了详细说清楚这个问题,特发此文章解释一番,图文并茂。

  • VS2017开发Linux项目的过程:从创建项目到调试运行全程指导

    讲了VS2017开发Linux项目的基本过程。里面可能涉及到问题,基本上都有了。希望能够给新手或者刚想开发Linux程序的Windows程序员或者想用VS2017开发Linux项目的Linux程序员一个引导吧。

  • VS2017 Linux.targets error:g++ exited with code127

    在使用VS2017编译代码时,提示了这样的错误:“Linux.targets error : g++ exited with code 127”。然后网上查了很久,都没有找到问题所在。经过一番研究,找到了问题,并解决了问题。