简体   繁体   English

libqmi 应该如何链接?

[英]How should the libqmi be linked?

I've tried to use libqmi but I can't get through the linker.我尝试使用 libqmi,但无法通过链接器。 It keeps saying "undefined reference" on libqmi functions.它一直在 libqmi 函数上说“未定义的引用”。 Any suggestions what is needed?有什么建议需要什么?

Paths and libraries are available for gcc, the symbols are inside libqmi-glib, looks like everything is in place.路径和库可用于 gcc,符号在 libqmi-glib 内,看起来一切就绪。

The code is the simplest possible, I think.我认为代码是最简单的。

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;
}

And the build goes like this:构建过程是这样的:

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

You're missing the link to libgobject-2 and libgio-2 .您缺少指向libgobject-2libgio-2的链接。

Anyway, the best way to compile a program using libqmi is to use pkg-config as that knows all the cflags and ldflags you should be using;无论如何,使用 libqmi 编译程序的最佳方法是使用 pkg-config,因为它知道您应该使用的所有 cflags 和 ldflags; eg you could probably do this, assuming you installed libqmi in /usr/local:例如,假设您在 /usr/local 中安装了 libqmi,您可能会这样做:

PKG_CONFIG_PATH=/usr/local/lib/pkgconfig gcc $(pkg-config --cflags qmi-glib) whatever.c $(pkg-config --libs qmi-glib)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM