我想编写简单的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添加目录还是有更合适的方法呢?
由于
答案 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..