如何编译自己的C代码作为ModemManager的一部分
How to compile your own C-code as part of ModemManager
我想编写简单的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即可。
相关文章:
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 代码在main()中运行,但在函数中出现错误
- 在VS代码中交叉编译Windows与Linux上的MinGW的SDL程序
- 编译包含字符串的代码时遇到问题
- 我在c++代码中生成了一个运行时#3异常
- 如何在linux终端中同时编译和运行c++代码
- 为cl.exe(Visual Studio代码)指定命令行C++版本
- 在Linux for Windows上编译C++代码时出错
- 我的字符计数代码计算错误.为什么
- 孤立代码块在结构中引发异常
- 在编译C++代码(具有dlib和opencv)到WASM时面临问题
- 为什么我的C#代码在调用回C++COM直到Task时会暂停.等待/线程.加入
- 处理小于cpu数据总线的数据类型.(c++转换为机器代码)
- 此代码是否违反一个定义规则
- 为什么我的代码在输出中增加了93天
- 我的简单if-else语句是如何无法访问的代码
- 使用动态分配的数组会导致代码分析发出虚假的C6386缓冲区溢出警告
- 为什么在这个代码结束循环中没有得到结束
- 在c代码之间共享数据的最佳方式
- 如何编译自己的C代码作为ModemManager的一部分