Qt qmake 和 DISTFILES
Qt qmake and DISTFILES
所以我正在学习在 OpenGL 3.3 中编程,我使用 qtcreator 作为我的 IDE,使用 qmake 作为编译器。一切都很好,除了我必须使用 ifstream 读取 2 个文件(fragmentshader.frag 和 vertexshader.vert)。
我已将这两个文件包含在“.pro”中,如下所示:
TEMPLATE = app
CONFIG += console c++11
CONFIG -= app_bundle
CONFIG -= qt
SOURCES += main.cpp \
shaders.cpp
LIBS += -lGLEW -lglfw -lGL -lX11 -lpthread -lXrandr -lXi
DISTFILES += \
vertexshader.vert \
fragmentshader.frag
HEADERS += \
shaders.h
并且在代码中我尝试直接读取 "vertexshader.vert" 和 "fragmentshader.frag"。
我的问题是:如何在我的应用程序中包含这些文件而无需指定绝对路径?
我有同样的问题,这是因为 Qt 是 运行ning 来自另一个目录的文件(默认情况下来自构建目录)。
修复
所以你有两个选择:
- 将 Projects->Build & 运行->运行 中的 Working directory 更改为
%{sourceDir}
.
- 在 Projects->Build & 运行->Build 中将 Build 目录 更改为
.
或留空。
解释
- 第一个选项 运行 您的程序(Windows 上的 .exe)来自您的项目所在的 sourceDir,因此路径将保持不变相对。
- 第二个选项将所有构建文件(即:Makefile、*.o 和“.exe”)放在项目目录中(它们不会出现在项目中view unless your Add them), 我更喜欢这种方式,因为现在你的项目目录包含与之相关的所有内容。
选出您最喜欢的一项,希望对您有所帮助。
所以我正在学习在 OpenGL 3.3 中编程,我使用 qtcreator 作为我的 IDE,使用 qmake 作为编译器。一切都很好,除了我必须使用 ifstream 读取 2 个文件(fragmentshader.frag 和 vertexshader.vert)。 我已将这两个文件包含在“.pro”中,如下所示:
TEMPLATE = app
CONFIG += console c++11
CONFIG -= app_bundle
CONFIG -= qt
SOURCES += main.cpp \
shaders.cpp
LIBS += -lGLEW -lglfw -lGL -lX11 -lpthread -lXrandr -lXi
DISTFILES += \
vertexshader.vert \
fragmentshader.frag
HEADERS += \
shaders.h
并且在代码中我尝试直接读取 "vertexshader.vert" 和 "fragmentshader.frag"。
我的问题是:如何在我的应用程序中包含这些文件而无需指定绝对路径?
我有同样的问题,这是因为 Qt 是 运行ning 来自另一个目录的文件(默认情况下来自构建目录)。
修复
所以你有两个选择:
- 将 Projects->Build & 运行->运行 中的 Working directory 更改为
%{sourceDir}
. - 在 Projects->Build & 运行->Build 中将 Build 目录 更改为
.
或留空。
解释
- 第一个选项 运行 您的程序(Windows 上的 .exe)来自您的项目所在的 sourceDir,因此路径将保持不变相对。
- 第二个选项将所有构建文件(即:Makefile、*.o 和“.exe”)放在项目目录中(它们不会出现在项目中view unless your Add them), 我更喜欢这种方式,因为现在你的项目目录包含与之相关的所有内容。
选出您最喜欢的一项,希望对您有所帮助。