json C++:在运行时提供非源文件的好方法[关闭]

im9ewurl  于 2023-05-13  发布在  其他
关注(0)|答案(1)|浏览(130)

已关闭,此问题需要更focused。目前不接受答复。
**想改善这个问题吗?**更新问题,使其仅通过editing this post关注一个问题。

2天前关闭。
Improve this question
让我们假设我有一个用CMake组成的项目,我有一个 example.json 文件,应该在运行时加载。简单地把它放到一个资源文件夹中,并引用它作为一个相对路径,我猜,不工作,因为(我猜...)相对路径将在运行时在cwd中解析,这不是原始文件夹。
如何确保最终的可执行文件/library/plugin可以找到 * example.json *?有没有一个标准的方法?或者这在很大程度上取决于操作系统、文件类型等?最好的可能是一种方法,我有一些 * 目标文件夹 * 与可执行文件和资源,或类似的。在某种程度上独立于任何系统上的构建过程。

z4bn682m

z4bn682m1#

非源文件,如图标图像、声音、用于国际化的字符串,都是程序资源。通常情况下,程序安装程序的工作是将文件放置在文件系统中程序期望它们的位置,这受到操作系统本身规则的限制-您创建程序和安装程序,并为两者找出路径等。有些操作系统有需要遵循的约定,您需要学习这些约定。
如果要创建静态链接的可执行文件,则可以通过几种方式将文件数据包含在可执行文件中,例如将数据转换为源代码,或使用链接器嵌入文件。在这种情况下,没有额外的文件,您只需要可执行文件。
无论哪种情况,这都取决于您使用的工具。CMake可以进行安装,但之后您需要捆绑CMake文件,这又回到了最初的问题。您可以使用tar文件进行分发和说明(与它捆绑在一起-同样的问题)。您可以查看yumapt或其他更复杂的选项,以及老式的自解压.sh存档。Windows和MacOS有自己的解决方案。

相关问题