Visual Studio 2017中解决方案添加现有的文件

虽然接触vs也有两年多时间了,但是其实也没有多少深入的了解,很多的功能和逻辑都不是很清楚。今天偶然发现解方案中添加现有项的一些问题, 顺便水一篇博客,随便写写,没啥逻辑,可能不严谨,欢迎指正。

本来是在解决方案底下新建了一个项目,学习OpenGL的新一个内容。就把之前解决方案从文件中读取着色器的代码都复制过来了。一运行发现出错了。
提示是着色器程序链接出错,找不到定义的main函数,找不到片元着色器的代码文件(很奇怪为啥顶点着色器的文件找到了)。我再看看代码也没错啊,就是直接从根目录读取。
然后我再打开项目所在目录,发现问题了。只有一个Debug文件夹和项目的一些文件,那几个cpp文件和.h文件和着色器代码文件都不在。 那他们在哪?在vs中点看文件得属性看一下终于知道了。
1
原来直接复制进来文件并不是真正意义得复制进来,而是引用进来,文件还是原来那个文件。
那刚才得问题就可以解释了,因为读取文件是直接读取项目得根目录。而着色器代码是引用进来的,它并不在项目的根目录里面。
2
点击箭头指向这个“显示所有文件”可以查看真实的目录结构。文件前面的蓝色小下标应该就是引用外部文件的意思。当然如果不涉及到按照路径读取的话,好像并没有什么太大的问题。但是如果直接在这里修改文件,估计就是直接修改源文件(我没有试,但应该是)。这通常不是我想要的。
那怎么直接把文件复制一份过来呢?我没找到直接的办法。

但是尝试到了其他的方法,可以直接打开根目录,然后把文件复制进去(不是在直接拖到vs的解决方案资源管理器,而是用windows的管理器打开)。
这个时候如果不点击“查看全部文件”是不能在资源管理器里面看到的(可能是因为并不属于这个项目),然后点“查看所有文件”之后能看到刚才拖进去的文件。
3
可以看到文件的右下角有红色的小标,大概就是说这个文件不在项目中的意思。右键它点一下“包括在项目中”它就被包含进来了。小标也没了。不点“查看全部文件”也能看见了。

然后其实也可以新建筛选器来整理这些文件。
4
这个筛选器并不是真正的文件目录,我这就弄了个着色器的筛选器来放他们。其他在根目录这些文件还是放在一起的。

发布了10 篇原创文章 · 获赞 5 · 访问量 777
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览