C 如何从介子获取目录路径?

C 如何从介子获取目录路径?,c,linux,path,meson-build,C,Linux,Path,Meson Build,我已经阅读了介子文档中的以下行 install_data('datafile.dat', install_dir : get_option('datadir') / 'progname') 运行介子时,应将datafile.dat安装到share/progname。我正在使用linux,我不清楚share/progname在我的计算机中的实际位置。在c程序中如何打开安装的文件?运行这样的东西对我不起作用: FILE * fptr = fopen("share/progname/da

我已经阅读了介子文档中的以下行

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\u 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

忍者安装
将在
/usr/local/share/progname

但您可以使用
-Dprefix
-Ddatadir
对其进行如下调整:

meson-Dprefix='/path/to/prefix'-Ddatadir='other'..


调用
ninja install
后,它将被安装在
/path/to/prefix/other/progname

我使用gnome builder作为我的IDE。当我“导出捆绑包”时,我可以在files/share/progname中找到安装的文件。我应该调用ninja install命令将其安装在/usr/local/share/progname中吗?在分发项目时,我如何管理它?有没有一种方法可以自动调用ninja install?嗯,您需要调用ninja install才能安装您的datafile.dat。我不知道你说的分发是什么意思。从源代码构建时,使用介子进行配置,使用ninja进行构建,使用ninja安装进行安装。就是这样。“Vahan,如果这解决了你的问题,请考虑接受答案。啊,是的,我忘了这么做。”再次感谢你的邀请,我现在就做。