多年来我一直在想这个问题。它是关于在代码中使用带有CMake的资源文件,以便在构建目录中运行时和安装时可以访问它们。
假设您拥有在名为res的顶级目录中运行程序所需的文件。它包含res / file1.txt和res / file2.txt。您构建此程序并将资源复制到构建目录,在该目录中可以在开发期间运行该程序。然后,程序与资源一起安装到/ usr / share / my_program或其他东西,程序通过访问这些文件运行。问题是如何在源代码中执行操作,以便在从构建目录运行和安装时,相同的代码可以正常工作。我已经看到了几个不同的答案,如何处理资源,但每个似乎都有一个缺陷:
这些是最佳解决方案之一吗?有什么我不是误会吗?我总是在印象中,应该能够在安装之前从构建目录运行程序以查看它们是否有效。如果可能,我想知道CMake和C / C ++代码的外观,例如open("my_resource_location");
和my_cmake_command()
。我所看到的与资源相关的大部分答案都不包含这两个问题。