首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用数据/资产和可移植/相对路径的介子

使用数据/资产和可移植/相对路径的介子
EN

Stack Overflow用户
提问于 2017-09-28 16:03:17
回答 1查看 1.3K关注 0票数 2

我想使用介子在C++中构建一个小游戏。假设这些是我的档案:

代码语言:javascript
复制
.
├── img
│   └── img.png
├── meson.buid
└── src
    ├── main.cpp
    └── meson.build

以下是meson.buid文件:

代码语言:javascript
复制
# meson.build
project('mygame', 'cpp')
subdir('src')
pkgdatadir = join_paths(get_option('datadir'), 'mygame')
install_subdir('img', install_dir : join_paths([pkgdatadir, 'img']))

第二个文件是:

代码语言:javascript
复制
# src/meson.build
executable('mygame', 'main.cpp', install : true)

在我的C++代码中,我应该使用什么路径在可移植(相对)中加载?way (Windows,OS,Linux)的资产文件,考虑到我可能在系统文件层次结构中创建了一个捆绑应用程序或安装了一个(deb)包?

当我在build目录中使用ninja构建时,我也希望这些文件路径能够工作,而不必在所有游戏数据上安装。

我考虑在编译时添加一个定义DATA_PREFIX集,或者使用一个环境变量。

http://mesonbuild.com/Installing.html数据

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-01 19:38:16

我想在编译时添加一个定义DATA_PREFIX集

这是我推荐的方法。然后,您可以使用configure_file()输出包含它的标题:

代码语言:javascript
复制
conf = configuration_data()
conf.set_quoted('PACKAGE_DATADIR', join_paths(get_option('prefix'), pkgdatadir))
configure_file(
  output: 'config.h',
  configuration: conf
)

然后,只需在源中包含config.h即可。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46473646

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档