我正在开发一个过去使用平面文件文本格式来存储其首选项的程序,但是我希望切换到使用库来卸载所有自定义代码。我对 json 情有独钟,一直在看 jansson。
不过我运气不太好,我所做的是首先检查我的 configure.ac 文件,检查 libjansson 包中的 json_string 函数。
...
checking for a BSD-compatible install... /usr/bin/install -c
checking for vte_terminal_fork_command in -lvte... yes
checking for json_string in -ljansson... yes
...
如您所见,这是可行的,问题是我在运行 make 时收到以下错误:
/home/niadh/Projects/x2/code/src/libX2.h:22: undefined reference to `json_string'
我正在运行最新的 Ubuntu 并安装了 libjansson4 和 libjansson-dev 软件包,如果有人可以帮助我启动并运行它,我将不胜感激。如果我未能提供关键信息,请告诉我,我将努力提供更多信息。我也非常期待我错过了一些简单的事情,如果是这样,我提前道歉。
为方便起见,这里是发生错误的 libX2.h 文件。
#include <jansson.h>
static gchar *getConfigDir() {
return g_build_filename(g_get_home_dir(), ".config", "X2", NULL);
}
static gchar *getConfigFile() {
return g_build_filename(getConfigDir(), "X2.conf", NULL);
}
static gchar *getTemplatesDir() {
return g_build_filename(getConfigDir(), "templates", NULL);
}
static gchar *getTemplate(gchar *template) {
return g_build_filename(getTemplatesDir, template, NULL);
}
static gchar *getDefaultPreferences() {
const gchar *font = "Sans 10";
const gchar *tabs = "bottom";
json_t *nothing = json_string("testing");
/*json_t *programmingFeatures = json_boolean(1);
json_t *syntaxHighlighting = json_boolean(1);
json_t *lineNumbering = json_boolean(1);
json_t *highlightLine = json_boolean(1);
json_t *terminal = json_boolean(1);
json_t *searchInWords = json_boolean(1);
json_t *caseSensitiveSearch = json_boolean(1);
json_t *lineWrapping = json_boolean(1);
json_t *fontInfo = json_string(font);
json_t *tabsPosition = json_string(tabs);*/
return "";
}