我正在尝试在用C编写的程序中包含文件的相对路径。目前对于我有的程序
createShader(&shader,"/Users/myUsername/Documents/Programming/OpenGL/shaders/shaderFile.glsl");
不便携。我想要的是我想要的是什么
createShader(&skyboxShader, "shaders/shaderFile.glsl");.
着色器目录是我的主程序目录下的一个目录。我的文件结构是
program
\include
\src
-> main.c
-> main.h
\shaders
-> shaderFile.glsl
感谢。
答案 0 :(得分:0)
你的便携性概念太弱了。在程序中编写绝对路径通常是一个坏主意,但使它相对于源代码似乎同样存在缺陷。我建议你使用一个简单的搜索路径算法,一个在当前工作目录中首先查找,然后可能在一些虚线子目录(隐藏)中的用户主目录中,然后按照某些命令行参数或环境的指示变量。一般搜索路径函数(假设某人尚未实现它)在您编写的大多数程序中都很有用。