我一直在尝试在项目中使用 GLib。我使用 XCode。我通过 Homebrew 下载了 Glib:
brew install glib
然后我跑
brew test glib
哪个输出
/usr/bin/clang -o test test.c -I/usr/local/Cellar/glib/2.36.3/include/glib-2.0 -I/usr/local/Cellar/glib/2.36.3/lib/glib-2.0/include -I/usr/local/opt/gettext/include -L/usr/local/Cellar/glib/2.36.3/lib -L/usr/local/opt/gettext/lib -lglib-2.0 -lintl -Os -w -pipe -march=native -Qunused-arguments -mmacosx-version-min=10.9 -isysroot /Applications/Xcode5-DP6.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk
因此,我复制了所有 -I 参数,并将它们粘贴到 XCode -> 项目设置 -> 构建设置 -> 其他 C 标志中。
在我的 XCode 项目中的 .c 文件中,我有
GList *processList_p = NULL; /* Pointer to the process list */
如果我编译一切正常,但是如果我从 GLib 调用一个函数,例如
//Create the new list element, append it to the list and return the pointer.
return g_list_append(processList, newProcess);
我得到错误
架构 x86_64 的未定义符号:“_g_list_append”,引用自:Scheduler.o 中的 _CreateProcess ld:未找到架构 x86_64 的符号:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)
我真的不知道发生了什么,任何帮助将不胜感激。