2

我尝试使用 libqmi,但无法通过链接器。它一直在说 libqmi 函数上的“未定义引用”。有什么建议需要什么吗?

路径和库可用于 gcc,符号位于 libqmi-glib 中,看起来一切就绪。

我认为代码是最简单的。

int main(int argc, char **argv)
{
    GFile *qmi = g_file_new_for_path("/dev/cdc-wdm0");
    printf("%li\r\n", (long int)(qmi));
    g_object_unref(qmi);
    return 0;
}

构建是这样的:

gcc -I/usr/local/include/libqmi-glib/ -I/usr/include/glib-2.0/ -I/usr/lib/x86_64-linux-gnu/glib-2.0/include/ whatever.c -L/usr/local/lib/ -L/usr/lib/x86_64-linux-gnu/ -lqmi-glib -lglib-2.0
4

1 回答 1

0

您缺少指向libgobject-2和的链接libgio-2

无论如何,使用 libqmi 编译程序的最佳方法是使用 pkg-config,因为它知道您应该使用的所有 cflags 和 ldflags;例如,假设您在 /usr/local 中安装了 libqmi,您可能会这样做:

PKG_CONFIG_PATH=/usr/local/lib/pkgconfig gcc $(pkg-config --cflags qmi-glib) whatever.c $(pkg-config --libs qmi-glib)
于 2020-02-19T09:12:39.123 回答