使用Qt和cmake将静态文件存储到/usr/share

使用Qt和cmake将静态文件存储到/usr/share,qt,cmake,cross-platform,Qt,Cmake,Cross Platform,我使用Qt和cmake开发我的开源应用程序,这是目前针对Windows和Linux的。它是用C++编写的。Tarball和debian包可以使用cmake生成,而InnoSetup用于生成Windows安装包 我知道Qt有用于存储用户特定持久数据的QSettings,并且是跨平台的。我不是问这个 我有一些独立于体系结构的、纯静态的、非用户特定的数据(基本上是一些永远不会更改的XML文件),我希望将其与可执行文件一起安装 据我所知,在Linux中,应该将其安装到/usr/share/[applic

我使用Qt和cmake开发我的开源应用程序,这是目前针对Windows和Linux的。它是用C++编写的。Tarball和debian包可以使用cmake生成,而InnoSetup用于生成Windows安装包

我知道Qt有用于存储用户特定持久数据的QSettings,并且是跨平台的。我不是问这个

我有一些独立于体系结构的、纯静态的、非用户特定的数据(基本上是一些永远不会更改的XML文件),我希望将其与可执行文件一起安装

据我所知,在Linux中,应该将其安装到/usr/share/[application]或/usr/local/share/[application]中。在Windows中,这应该安装在C:\Program Files\[application]中

  • 如何在cmake中使用
    install
    命令在Linux上实现这一点

  • Qt是否有任何跨平台API可以在安装后自动检测这些文件的位置,就像它对QSettings所做的那样


  • 我无法回答#1,但可能是您正在寻找的#2?

    这可能不是您想要的,但我应该提到的是,Qt具有用于在应用程序的可执行文件中存储此类数据的功能。如果文件不太大,那就很方便了。您可以存储任何文件,它们将通过Qt API以类似于虚拟文件系统的方式提供。否。Qt资源系统用于将文件存储到图像和图标等可执行文件中。我想做的是在可执行文件之外保留一堆XML文件。这些类似于插件,我已经看过了,但它们似乎包含用户特定的路径。您知道哪一个将提供/usr/share?(顺便说一句,我目前正在使用Qt4。我还没有迁移到提供此功能的Qt5)使用Qt4.8,
    qDebug()