OpenGL中调用ifstream读取文件的相对路径出错的解决方法

跑一个OpenGL案例:将着色器封装成类,通过调用类来读取自己写的着色器文本 时,着色器文本的相对路径一直读取失败

调用图

OpenGL中调用ifstream读取文件的相对路径出错的解决方法

着色器类图(源码 着色器 - LearnOpenGL CN (learnopengl-cn.github.io)

OpenGL中调用ifstream读取文件的相对路径出错的解决方法 

报错图

OpenGL中调用ifstream读取文件的相对路径出错的解决方法

项目结构

OpenGL中调用ifstream读取文件的相对路径出错的解决方法

看了多个教程终于解决了这个问题。

首先是看到这个帖子

(35条消息) VS调试时ifstream.open()打开文件失败_Knight_Shaw的博客-CSDN博客_ifstream打开文件失败

发现把着色器文本与.vcxproj文件放在同一目录下就能成功打开和编译

OpenGL中调用ifstream读取文件的相对路径出错的解决方法

但这样在项目中不方便打开和更改,我还是想把它放在shaders文件夹里,于是继续搜索,找到一篇文章

(35条消息) 如何设置vs包含目录的相对路径_lemon-CSDN博客_vs包含目录相对路径

 里面说在vs中相对路径的起点是.vcxproj文件,于是仿照这篇博客,我将路径改为

OpenGL中调用ifstream读取文件的相对路径出错的解决方法

 即可成功使用相对路径。

上一篇:English Question:Suspend vs. Stop vs. Pause vs. Cease vs. Halt


下一篇:C/Cpp: dynamic vs. static constructor calls