我想编写简单的 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
它提示 fatal error :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-config 请求 mm-glib cflags/libs 应该足够了,因为这将拉取任何额外的依赖 cflags/libs,如 glib/gobject/gio。
但是从您的代码示例来看,您还添加了 mmcli 特定 header ...那么您是否想使用新功能扩展 mmcli?如果是这样,您应该扩展 mmcli 源,而不是提供自定义 gcc 命令,如果您需要在 mmcli 的编译中添加新文件,只需修改 cli/下的 Makefile.am 即可。
关于c++ - 如何将您自己的 C 代码编译为 ModemManager 的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36273209/