【发布时间】:2018-01-08 23:14:31
【问题描述】:
上下文:我主要是一名 Java 开发人员,我在所有构建中都使用 gradle。作为一种爱好,我一直在玩 C/C++,发现 gradle 也有能力构建这些。因此,我认为我会使用 gradle,而不是仅仅为一些小型业余项目学习 cmake/make。
问题:如何定义非源文件的位置?
使用 Java 有一个资源文件夹,您可以将图像、文本文件等内容放入其中,而 gradle 会将这些内容放入 jar 中,因此在您的代码中您可以很容易地使用相对路径加载它们。
src > main > java 用于源文件。
src > main > 资源资源。
对于 c++ 项目是否有等效的方法来执行此操作?
此外,如果有一个默认文件夹很高兴知道,而且如何在 build.gradle 文件中将其定义到不同的位置,也将不胜感激。
这里是我现在的简单构建文件供参考:
apply plugin: "cpp"
model {
components {
main(NativeExecutableSpec) {
sources {
cpp {
source {
srcDir "src"
}
}
}
}
}
}
在我的代码中,我希望能够加载图像,例如:
HoweverYouLoadAnImageInCpp("imageName.png");
虽然具有简单的结构,例如:
root
--src
--images
如果目前没有办法做到这一点,是否有解决方法或更标准的方式人们在 C/C++ 中做到这一点?
【问题讨论】:
-
这在纯 C 或 C++ 中是不可能的,平台可以解决这个问题,例如 windows 有捆绑到构建可执行文件中的资源文件。我不知道 *nix 有什么等价物。
-
我没有完全考虑到可能无法将资产捆绑在可执行文件中。那么资产存储在可执行文件之外的单独文件夹中并以这种方式访问是否很常见?也许将资产复制到构建输出中的并行文件夹。
标签: c++ file gradle path assets