如何编译自己的C代码作为ModemManager的一部分

How to compile your own C-code as part of ModemManager

本文关键字:代码 ModemManager 一部分 自己的 何编译 编译      更新时间:2023-10-16

我想编写简单的C代码来使用ModemManager 1.4.12中的函数,使用ModemManagement中提供的一些函数来执行与调制解调器相关的功能。我已经添加了我需要的标题:

#include "config.h"
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
#include <glib.h>
#include <gio/gio.h>
#include <libmm-glib.h>
#include "mmcli.h"
#include "mmcli-common.h"

使用gcc-o测试测试.h 编译

但它抱怨没有找到glib.h。

当我编译时使用:gcc-墙pkg-config --cflags libnm pkg-config --cflags --libs gio-2.0它抱怨致命错误:libmm-glib.h:没有这样的文件或目录当我使用-I来包含libmm-glib.h时,它会抱怨找不到ModemManager.h。

我应该继续用-I添加目录吗?或者有更合适的方法吗?

感谢

不清楚你想完成什么。。。

您想构建一个单独的程序,使用libmm-glib通过DBus与ModemManager对话吗?如果是:

 /* save as test.c and compile with:
  * $ gcc -o test `pkg-config --cflags --libs mm-glib` test.c
  */
 #include <libmm-glib.h>
 int main (int argc, const char **argv)
 {
 ...
 }

请注意,pkg配置请求mm glib-cflags/libs就足够了,因为这将导致任何额外的依赖项cflags/lib,如glib/goject/gio。

但从代码示例的外观来看,您还添加了mmcli特定的头。。。那么,您想用新功能扩展mmcli吗?如果是这样,您不应该提供自定义的gcc命令,而应该扩展mmcli源,如果需要在编译mmcli时添加新文件,只需在cli/下修改Makefile.am即可。