如何从介子获取目录路径?
How to get directory path from meson?
我已阅读介子文档中的以下行
install_data('datafile.dat', install_dir : get_option('datadir') / 'progname')
当介子为 运行 时,这应该将 datafile.dat
安装到 share/progname
。我正在使用 linux,但我不清楚 share/progname
在我的计算机中的实际位置。在 C 程序中,我如何打开已安装的文件? 运行 这样的东西对我不起作用:
FILE * fptr = fopen("share/progname/datafile.dat", "w");
....
share/progname 是不是类似于前缀的东西,它是一个位置的虚拟路径?或者是别的什么?如何安装我的数据库文件并从 C 程序访问它?
安装介子将使用前缀 + install_dir
,默认前缀是 /usr/local/
,所以如果你有:
install_data('datafile.dat', install_dir :'progname')
并调用ninja install
,datafile.dat
将安装在'/usr/local/progname'
在你的情况下你有
install_data('datafile.dat', install_dir : get_option('datadir') / 'progname')
如果您不提供 -Dprefix
或 -Ddatadir
ninja install
将安装在 /usr/local/share/progname
但您可以像这样使用 -Dprefix
和 -Ddatadir
对其进行调整:
meson -Dprefix='/path/to/prefix' -Ddatadir='other' ..
并且在调用 ninja install
之后它将安装在 /path/to/prefix/other/progname
我已阅读介子文档中的以下行
install_data('datafile.dat', install_dir : get_option('datadir') / 'progname')
当介子为 运行 时,这应该将 datafile.dat
安装到 share/progname
。我正在使用 linux,但我不清楚 share/progname
在我的计算机中的实际位置。在 C 程序中,我如何打开已安装的文件? 运行 这样的东西对我不起作用:
FILE * fptr = fopen("share/progname/datafile.dat", "w");
....
share/progname 是不是类似于前缀的东西,它是一个位置的虚拟路径?或者是别的什么?如何安装我的数据库文件并从 C 程序访问它?
安装介子将使用前缀 + install_dir
,默认前缀是 /usr/local/
,所以如果你有:
install_data('datafile.dat', install_dir :'progname')
并调用ninja install
,datafile.dat
将安装在'/usr/local/progname'
在你的情况下你有
install_data('datafile.dat', install_dir : get_option('datadir') / 'progname')
如果您不提供 -Dprefix
或 -Ddatadir
ninja install
将安装在 /usr/local/share/progname
但您可以像这样使用 -Dprefix
和 -Ddatadir
对其进行调整:
meson -Dprefix='/path/to/prefix' -Ddatadir='other' ..
并且在调用 ninja install
之后它将安装在 /path/to/prefix/other/progname