我开始使用gtkmm(用于GTK + GUI工具包的C ++绑定)开发用C ++编写的声谱分析工具(受spek启发)。我想我现在应该知道如何做到这一点,但是......
我的目录结构是a-la-GNOME,例如src/
,data/
,po/
,man/
。需要我查询的具体情况是使用位于data/ui
的GTK UI管理器。对于这种特定情况,我希望能够以独立于安装的方式从该文件加载用户界面(例如,加载文件不依赖于make install
;可执行文件可以运行[并加载]在运行src/
[因此将源代码编译为selfsame exectuable]或其安装前缀之后,来自make
的UI文件。我如何在源代码中引用UI文件(请记住,不是通过创建文件对象(fopen(...)
)来执行文件加载,而是将文件位置作为字符串参数传递给{ {1}})?
除了UI文件的这种特殊情况之外,我如何使用autotools构建过程对文件(即数据库,INI文件,XML模式)进行类似的引用?是否有一段相关的Automake代码可以快速设置项目以使用这种类型的目录结构?
答案 0 :(得分:1)
只需尝试使用这两个文件(未安装优先级):
if(!(UIManager).add_ui_from_file(../data/ui/mygui))
(UIManager).add_ui_from_file(/incalled/location/mygui)
答案 1 :(得分:0)
在Glom中,我创建了一个辅助函数,它尝试这两个位置,两个位置都在Makefile.am中定义(如果你只有一个Makefile.am,通过使用非递归的automake,这会更简单,无论如何都更简单): http://git.gnome.org/browse/glom/tree/glom/glade_utils.h#n38