我尝试使用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
您缺少指向libgobject-2
和libgio-2
的链接。
无论如何,使用libqmi编译程序的最佳方法是使用pkg-config,因为它知道您应该使用的所有cflag和ldflags;例如假设您在/ usr / local中安装了libqmi,则可以执行此操作:
PKG_CONFIG_PATH=/usr/local/lib/pkgconfig gcc $(pkg-config --cflags qmi-glib) whatever.c $(pkg-config --libs qmi-glib)