一个由动态库对其他动态库的依赖导致的问题

感觉难以解决的编译问题大多是链接的问题,其中大多是动态链接的问题,而这其中又大多是涉及要加 -l 选项的动态库的动态链接问题。 问题场景 编译可执行程序 UnitTest 时报错: 1Scanning dependencies of target UnitTest 2[ 16%] Building CXX object CMakeFiles/UnitTest.dir/test/unit_test.cpp.o 3[ 33%] Linking CXX executable UnitTest 4/home/ubuntu/project/build/libA.so: undefined reference to `dlopen' …

基于 BusyBox 快速制作内核验证环境

本文介绍的方法,旨在利用基于 BusyBox 制作的简易文件系统来快速启动内核并进入一个 shell 环境,以此来验证内核的功能和稳定性。其优点在于制作简单,资源占用小,验证环境的启动时间短(仅需启动内核,省去了各种用户态应用及框架的启动过程);缺点是可拓展性较差,难以支撑一些需要用到用户态工具的复杂内核功能的验证。 本文主要以 ARM64 为例讲解整个过程。实际操作中,应结合实际使用的体系结构与工具链对步骤细节进行调整。介绍的验证环境有基于 initrd 和基于 SD 卡两种,可以根据实际情况选择。 BusyBox 编译 1# BusyBox 源代码下载,解压 2# https://busybox.net/downloads/ 3 …

“7/28 XX 版本容器 at 大面积失败问题”分析报告

遗留问题:把 struct mm 放到 file->private_date 中,是否有可能导致泄漏? 情况简述 XXX(xxxxxxxx)2021-07-29 14:32 @XX 有修改引入引起这边容器AT大面积失败 问题引入补丁:bfb819ea20ce (“proc: Check /proc/$pid/attr/ writes against file opener”) 修补补丁: 591a22c14d3f (“proc: Track /proc/$pid/attr/ opener mm_struct”) ,在修复原问题的基础上引入了新问题。 问题现场:Launchpad …

Search Paths for Dynamic Linking & Loading

Before we start When talking about “dynamic linking”, people could refer to any of the following two processes: one is a step of program’s construction, where (relocatable) object files are dynamically linked by the linker – a toolchain’s component; the other is a pre-processing stage of …

【C++ 小问答】5:对结构体成员字符数组的访问

问 1struct Book { 2 char name[10]; 3 char type[10]; 4 int price; 5}; 6 7struct Book *getBook() 8{ 9 struct Book b = { 10 .name = "C Primer", 11 .type = "Programme", 12 .price = 100, 13 }; 14 return &b; 15}; 16 17int main() 18{ 19 struct Book *b = getBook(); 20 char *name = b->name; 21 char *type = …