。1. % autoscan
。2. % mv configure.scan configure.ac
。3. 修改 configure.ac
。4. % aclocal
。5. % autoconf
。6. % autoheader
。7. 编写 Makefile.am
。8. % automake --add-missing
。
。
。
。
。
。
。
。
本作品采用知识共享署名-非商业性使用-相同方式共享 2.5 中国大陆许可协议 进行许可。
墨衍会员
·
AI 创作全网分发
墨衍智能分发
本文由作者通过墨衍一键同步至各平台
1分发平台
600+累计阅读
605平均单平台
已同步平台
优快云
微信公众号
微博
知乎
掘金
百家号
博客园
抖音
小红书
你的文章也可以这样分发
墨衍会员 ¥399起/年,写一次发全网
我也要 →
码龄17年
。1. % autoscan
。2. % mv configure.scan configure.ac
。3. 修改 configure.ac
。4. % aclocal
。5. % autoconf
。6. % autoheader
。7. 编写 Makefile.am
。8. % automake --add-missing
。
。
。
。
。
。
。
。
本作品采用知识共享署名-非商业性使用-相同方式共享 2.5 中国大陆许可协议 进行许可。
Linux C语言高级编程:从GCC编译到GDB调试与系统级开发实战
在Linux系统编程领域,C语言作为核心开发语言,其高级编程能力直接影响程序的可靠性、性能与可维护性。理解编译链接原理是基础,GCC工具链的预处理、编译、汇编、链接四阶段控制,以及静态库与动态库的创建与使用,决定了程序的组织结构与运行效率。掌握系统级调试技术至关重要,GDB调试器不仅能诊断段错误等经典崩溃问题,还能通过核心转储分析、多进程与多线程调试,快速定位内存越界、空指针解引用等隐患。在工程实践中,结合AddressSanitizer、Valgrind等内存调试工具,可以进一步提升代码健壮性。这些技术最
用autotools(Automake\Autoconf)生成Makefile
automake所产生的Makefile除了可以做到程序的自动编译和链接外,还可以用来生成各种文档(如manual page, info文件),可以将源代码文件包装起来以供发布。所以程序源代码所存放的目录结构最好符合GNU的标准惯例.下面以hello.c程序生成Makefile文件作为例子。 1.在当前目录下创建一个名为hello的子目录。hello这个目录用于存放hello.c这个程序
Portspoof实战:用端口欺骗技术对抗Nmap扫描的主动防御方案
在网络安全领域,端口扫描是攻击者进行信息收集的常见手段,其原理是通过探测目标主机的开放端口来识别运行的服务。为了应对这种威胁,主动防御技术应运而生,它通过模拟真实服务响应来干扰扫描结果,从而提升系统的隐蔽性。Portspoof作为一款轻量级端口欺骗工具,通过监听非关键端口并返回精心构造的服务标识,能够有效污染扫描报告,大幅增加攻击者的分析成本。这种基于服务仿真的方法,结合防火墙规则的重定向机制,为服务器安全提供了额外的保护层,特别适用于需要隐藏真实服务轮廓的攻防演练和蜜罐部署场景。
关于autotools的安装以及使用
在嵌入式的工作中,对于编写makefile是不可缺少的技能,但是对于一些大型的项目,编写makefile文件相对来说比较麻烦,但是我们可以借助GNU Autotools工具进行实现。 我是用一个简单的例子来进行总结和归纳,一个最普通的输出 helloworld 的程序。这里交代一下取名为 main.c。 对于autotools的安装: autotools是一系列的工具,包括:autocon
GCC FORTIFY_SOURCE编译加固:防御缓冲区溢出的轻量级安全方案
缓冲区溢出是C/C++开发中常见且高危的安全漏洞,常由strcpy、memcpy等标准库函数的不当使用引发,可导致程序崩溃、数据泄露甚至远程代码执行。其原理在于向固定大小的内存区域写入超量数据,从而覆盖相邻内存。为防御此类漏洞,GCC与Glibc提供了FORTIFY_SOURCE编译选项,它在编译时对高危函数调用插入运行时缓冲区长度检查,将静默溢出转化为可控的运行时错误。这项技术以极低性能开销(通常<5%)实现了对已知高危函数的精准防护,适用于生产环境中的网络服务、基础软件等对稳定性与安全性要求较高的场景。
【BlueZ】源码编译环境配置全指南:Linux桌面原生编译 + 嵌入式ARM交叉编译 + 定制裁剪与调试实战
本文深入解析BlueZ源码编译的全流程,重点解决嵌入式平台定制化落地的技术难点。文章首先分析为什么必须从源码编译BlueZ(版本滞后、功能裁剪、二次开发需求),详细讲解源码目录结构与编译产物对应关系。然后提供两大编译场景的完整指南:Linux桌面环境原生编译流程(依赖安装、configure参数详解、安装验证)和ARM平台交叉编译(依赖库层级处理、pkg-config配置、板端部署)。特别针对嵌入式场景提供了最小系统裁剪方案、静态编译技巧及全流程排错方法论。
buildroot Makefile include *.mk 的玄机.
本文解析了Buildroot中Makefile动态包含*.mk文件的机制。通过分析发现,pkgname变量并非手动设置,而是借助MAKEFILE_LIST自动获取:当包含.mk文件时,make会将该文件名加入MAKEFILE_LIST,通过$(lastword $(MAKEFILE_LIST))可提取文件路径并计算包名。作者通过简化实验验证了这一机制,展示了如何利用延迟展开特性,在包含每个.mk文件时动态生成对应的host-目标。这种设计实现了自动化包名推导,避免了手工维护变量,体现了Makefile的灵活
SRTP开源库libsrtp实战:从srtp.rar解压到API调用全解析
音视频通信中,RTP流裸奔在公网上极易被窃听和篡改。SRTP(安全实时传输协议)作为RTP的安全扩展,通过AES加密与消息认证保障实时媒体流的机密性和完整性。在众多实现中,libsrtp凭借其稳定性、完整API和WebRTC生态的广泛采用,成为SRTP开源库的事实标准。无论是处理srtp.rar压缩包中的r_srtp版本,还是对接DTLS-SRTP密钥协商,工程师都需要掌握从源码编译、Policy配置到srtp_protect/unprotect调用链路的完整流程。本文面向VoIP、WebRTC网关及安防流
GCC 命令详解
GNU CC(简称为Gcc)是GNU项目中符合ANSI C标准的编译系统,能够编译用C、C++和Object C等语言编写的程序。Gcc不仅功能强大,而且可以编译如C、C++、Object C、Java、Fortran、Pascal、Modula-3和Ada等多种语言,而且Gcc又是一个交叉平台编译器,它能够在当前CPU平台上为多种不同体系结构的硬件平台开发软件,因此尤其适合在嵌入式领域的开发编译
MinGW-w64 GCC 8.1.0部署与实战:从文件名解析到C/C++项目编译
在Windows平台进行C/C++开发时,GCC编译器工具链是连接开源生态与原生应用构建的核心桥梁。其工作原理是通过提供一套完整的编译、链接和调试工具,将源代码转换为可在目标系统运行的可执行文件。这一技术价值在于,它使得开发者能够在Windows环境下,获得与Linux/Unix相似的标准化开发体验,极大地促进了跨平台项目的移植和构建。其典型应用场景包括编译第三方开源库(如FFmpeg、OpenCV)、开发Python C扩展以及进行嵌入式或系统级编程。本文聚焦于MinGW-w64这一经典工具链,特别是其G
静态与动态LACP链路聚合:原理、配置与排错实战指南
链路聚合技术是提升网络带宽与可靠性的核心方案,通过将多个物理端口逻辑捆绑,实现带宽叠加与链路冗余。其原理基于IEEE 802.3ad标准,通过负载均衡算法将数据流分布到不同物理链路,既避免了数据包乱序,又提升了整体吞吐量。该技术的核心价值在于消除单端口瓶颈、提供毫秒级故障切换,并能简化网络拓扑管理。在企业服务器接入、数据中心互联及虚拟化平台等场景中,链路聚合已成为构建高可用网络的基础。实践中,动态LACP模式通过协议报文协商,能主动检测链路故障并防止配置错误导致的网络环路,相比静态聚合更为可靠。本文将深入解
如何写一个 GNU 风格的命令行程序
GNU Autotools 不黑 我见过很多人抱怨 GNU Autotools 太复杂。事实上它比求解一元二次方程简单多了。学习 GNU Autotools,最好的办法就是动手搭建一个项目,然后根据自己的需求去查 GNU Autotools 的文档与教程,整个过程只是很简单的『加法』运算。 也有人抱怨 GNU Autotools 在 Wi...
深入理解DQN中的Q值:核心概念和应用
在强化学习中,Q值(或称为动作价值函数)是核心概念之一。Q值函数 ( Q(s, a) ) 表示在给定状态 ( s ) 下,采取动作 ( a ) 并遵循某策略后,智能体从当前状态到未来状态所能获得的预期总回报。简言之,Q值是评估特定状态和动作对的好坏的指标。
GCC 编译过程
GNU CC(简称为Gcc)是GNU项目中符合ANSI C标准的编译系统,能够编译用C、C++和Object C等语言编写的程序。Gcc不仅功能强大,而且可以编译如C、C++、Object C、Java、Fortran、Pascal、Modula-3和Ada等多种语言,而且Gcc又是一个交叉平台编译器,它能够在当前CPU平台上为多种不同体系结构的硬件平台开发软件,因此尤其适合在嵌入式领域的开发编译
为Codex添加任务完成提示音:提升开发效率的实用技巧
在自动化脚本开发和模型训练过程中,实时获取任务状态反馈是提升工作效率的关键。通过Hook机制,开发者可以在代码执行的关键节点注入自定义逻辑,实现各种自动化操作。Codex的Hook系统特别适合用于任务完成提醒,其post_execution节点能准确捕获执行结束事件。技术实现上,只需简单配置TOML文件并编写音频播放脚本,就能让系统在任务完成时自动播放提示音。这种声音反馈机制尤其适用于长时间运行的批量任务和模型训练场景,实测可提升30%以上的工作效率。结合动态音效选择和跨平台兼容方案,该技巧还能扩展为桌面通
同济大学C++mooc第五、六讲参考答案
同济大学C++moooc第5、6讲 第五讲 第一题 随机产生10个30~100(包括30,100)的正整数,求它们的最大值、最小值、平均值,并显示整个数组的值和结果。 代码片. // #include<iostream> const int n = 10; using namespace std; int main() { int s[n],i,j,t,sum=0; for (i = 0; i < n; i++)
GCC 编译详解
GNU CC(简称为Gcc)是GNU项目中符合ANSI C标准的编译系统,能够编译用C、C++和Object C等语言编写的程序。Gcc不仅功能强大,而且可以编译如C、C++、Object C、Java、Fortran、Pascal、Modula-3和Ada等多种语言,而且Gcc又是一个交叉平台编译器,它能够在当前CPU平台上为多种不同体系结构的硬件平台开发软件,因此尤其适合在嵌入式领域的开发编译
PLC模拟量输入电路设计:±10V与±20mA信号调理全解析
在工业自动化和数据采集系统中,模拟量输入是连接物理世界与数字控制的核心桥梁。无论是变送器输出的4-20mA电流环,还是伺服驱动与信号发生器提供的±10V电压信号,PLC和采集模块都需要在复杂现场环境下稳定、精准地完成信号采集。理解信号体制的原理——电流环抗长线干扰、电压环响应快——是设计模拟输入前端的基础。通过精密电阻网络实现分压与采样,利用运放完成双极性到单极性的电平搬移,配合TVS与滤波电路保障可靠性,并经过ADC量化与校准流程,最终构建出兼顾精度、成本和工业级鲁棒性的完整信号链路。本文面向硬件工程师与
CMAKE MEMO
cmake 易错点 在funciton中定义的变量, 比如通过set 的变量是局部作用域。 cmake_parse_argument 命令的基本使用形式 cmake_parse_arguments(<prefix> <options> <one_value_keywords> <multi_value_keywords> <args>...) prefix 的值将会成为最终变量名的前缀, 如下代码将会得到PROJECT_INCLUDE_DIR
深入浅出之CSPBlock模块(YOLO)
YOLO CSPX模块是YOLO系列算法中的一个重要组成部分,它通过跨阶段部分连接的方式减少了计算量,同时保证了模型的准确率。在YOLOv4及后续版本中,CSPX模块被广泛应用于主干网络和Neck结构中,为模型提供了强大的特征提取和融合能力。
从零开始学习PX4源码0(固件下载及编译)
本节主要记录从零开始学习PX4源码1(固件下载)的过程,欢迎批评指正!!!下载固件主要分为两个版本,之前稳定版本和最新官网发布版本,为什么要下载两个版本,主要是说明两个版本有一定的差异(开发环境及源码文件格式等),我们是从之前版本开始学习,为什么不从最新的?因为之前版本代码文件格式还是固定的,最新的变化很大,不利于初学者学习,apm和px4不好的地方就是之前版本v1.7.2和最新版本v1.14.0有些文件总是在变化,这样很不好。
Linux C++开发环境迁移:从VSCode弃用警告到LSP新架构实战
在C++开发中,代码智能感知(IntelliSense)是提升开发效率的核心工具,它通过实时分析代码结构提供补全、跳转和错误检测功能。其底层原理经历了从专有引擎到语言服务器协议(LSP)的演进。LSP作为标准化协议,实现了编辑器与语言分析工具的分离,带来了更准确的解析能力、更低的内存占用和更好的跨平台支持,这对于处理大型项目和现代C++标准尤为重要。在工程实践中,这一技术价值直接体现在开发环境的稳定性和响应速度上。尤其在Linux平台,结合CMake等构建系统,LSP能够直接从编译命令数据库获取精确的编译环
深度解析:LPDDR5 采样 Mask 背后的秘密 —— 从 Jitter 到 BER 全面剖析
在 LPDDR5 中,CK/DQS 信号相当于“指挥棒”,而数据(DQ)要在时钟节拍里被准确采样。Crosspoint Mask 区域横轴:时间 (Time)纵轴:电压 (Vref)👉 只要采样点落在这个区域内,数据就是正确的。否则就会出错。BERPBERPMask 就像高速公路的收费站口,如果车(采样点🚗)在车道内,顺利通过;一旦跑偏,就撞护栏。LPDDR5 的速率极高,UI 非常短,Mask 区域成为核心指标各种 Jitter、Noise 会不断压缩 Mask。
鸿蒙PC开源软件迁移与多语言三方库移植实战课程讲稿(二、C/C++三方库移植实战,以libmediainfo为主线)
摘要: 本课程第二部分聚焦C/C++三方库移植实战,主讲人优快云猫哥基于鸿蒙PC生态开发经验,系统讲解从环境配置到NAPI封装的完整流程。核心内容包括: 方法论筑基:解析musl与glibc的ABI差异(如pthread_cancel缺失)及三大构建系统(Autotools/CMake/Meson)适配要点; 方案选型:对比手动交叉编译、Lycium++、vcpkg、AI框架四种移植路径; 实战演示:以libmediainfo为例,通过vcpkg解决依赖链与musl兼容性问题; 生态共建:强调贡献补丁与经
lwip-2.0.3
lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。
VC中sqlite的使用
在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示
PowerPC嵌入式开发:CodeWarrior与GCC构建工具链配置实战指南
在嵌入式系统开发中,构建工具链是连接高级语言与底层硬件的核心桥梁,它通过编译器和链接器将源代码转换为目标硬件可执行的机器指令。其工作原理涉及指令集架构适配、内存布局优化和二进制接口规范,技术价值在于直接决定了代码的执行效率、内存占用和系统稳定性。在嵌入式Linux、实时操作系统和裸机应用等场景中,针对特定处理器架构(如Power Architecture)的优化配置尤为关键。本文聚焦PowerPC处理器开发,深入解析CodeWarrior与GCC两套主流工具链的配置逻辑,涵盖处理器选型、内存映射、ABI规范
老版QQ原生表情gif动态
这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。
玄铁RISC-V软件生态:从工具链到应用开发的实践指南
处理器软件生态是决定芯片能否广泛应用的关键,其核心在于工具链与操作系统支持。编译器、调试器等基础工具链是软件开发的起点,GCC和LLVM通过架构适配实现代码编译与优化。操作系统内核移植则涉及启动引导、设备树与驱动开发,为上层应用提供运行环境。在RISC-V架构下,这些基础组件的完善程度直接影响开发效率与产品落地速度。随着生态发展,中间件、高级语言运行时及图形框架的适配成为拓展应用场景的技术重点。本文聚焦玄铁RISC-V处理器,深入分析其工具链配置、Linux移植实践及交叉编译工作流,探讨从基础驱动调试到系统
复分析 阿尔福斯(Ahlfors) 第三版答案 英文
答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案
268

被折叠的 条评论
为什么被折叠?



