获取外部库中的文件路径

时间:2012-06-04 14:11:56

标签: qt path qstring

我有2个Qt项目。一个构建库,另一个构建使用该库的GUI。我的图书馆项目包括我制作的一系列着色器。在我的GUI中,我想引用这些着色器的路径。我的方法是在我的库中使用一个名为getLibraryPath()的静态函数,它返回一个QString引用我的文件系统上的路径到库。

我尝试过使用QDir::currentPath()QApplication::applicationFilePath()以及返回路径的其他类似函数但它们都返回引用我的GUI路径的路径,而不是库的路径,即使找到路径的函数也是如此在图书馆内。

在我的GUI中,我尝试通过执行:Shader->addShaderFromSourceFile(QGLShader::Vertex, MyExternalLib::getLibraryPath() + "/shaders/MyVertexShader.vs");

来引用着色器

2 个答案:

答案 0 :(得分:1)

库只是一堆代码。它没有自己的道路。做你想做的正常方式是:

  1. 如果库是单独安装的产品 - 在安装程序中设置注册表项,并在运行时检查它。这将是特定于平台的,除非库是用Qt编写的 - 那么你可以使用QSettings,但要确保你已经适当地设置你的公司名称,应用程序等,因为QApplication不再适合你了。

  2. 如果库是作为应用程序的一部分安装的,则在同一文件夹树中:使用QCoreApplication::applicationDirPath()并在应用程序可执行文件和您希望此路径的文件之间添加相对路径。

答案 1 :(得分:0)

我能够通过添加我想要引用到我的库项目中的qrc文件的文件来解决这个问题。通过这样做,我可以轻松地引用qrc路径及其中的文件。