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

时间:2016-03-28 23:59:52

标签: c++ gcc

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

#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 test test.h编译

但它抱怨找不到glib.h。

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

我应该继续使用-I添加目录还是有更合适的方法呢?

由于

1 个答案:

答案 0 :(得分:1)

目前尚不清楚你想要完成什么......

您是否要构建一个单独的程序,使用 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)
 {
 ...
 }

请注意,请求mm-glib cflags / libs的pkg-config应该足够了,因为它会提取任何额外的依赖cflags / libs,比如glib / gobject / gio。

但是从代码示例的外观来看,您还要添加 mmcli 特定标题...那么您是否希望使用新功能扩展mmcli?如果是这样,您应该扩展mmcli源代码而不是提供自定义gcc命令,如果需要在mmcli的编译中添加新文件,只需修改cli /下的Makefile..