编译原理学习
文章平均质量分 81
编译原理学习
AnSwEr不是答案
Github:https://github.com/AnSwErYWJ
技术博客:www.answerywj.com
展开
-
RPATH与RUNPATH的区别
文章目录RPATH与RUNPATH的区别源文件复现步骤问题原因排除共享库本身问题分析库查找过程RPATH与RUNPATH的区别解决方案LD_LIBRARY_PATH(不推荐)--disable-new-dtags参考本文从一个实际遇到的问题出发,分析 RPATH 与 RUNPATH 的区别,以及产生的原因。RPATH与RUNPATH的区别年前升级了操作系统后,同样的代码在新系统编译后无法执行,提示找不到依赖库,本文用来记录一下是如何解决这个问题的。源文件main.c :#include "a原创 2021-02-22 18:38:10 · 2758 阅读 · 2 评论 -
GCC编译ARM篇
ARM 平台下GCC编译相关介绍,待补充 ARM处理器架构ARM处理器架构,通过选项-march指定,如-march=armv7-a,目前常见的有armv5te,armv6和armv7-a等指令集指令集,通过选项-m指定,如-mthumb,常见的有 1. thumb 16位指令集,它将32位arm指令的压缩成16位的指令编码方式,,实现低功耗 2. thumb-2 16位/32位指令集,对原创 2017-08-07 09:08:34 · 6735 阅读 · 0 评论 -
屏蔽静态库接口
文章目录准备编译链接去除无用的符号隐藏的符号本地化(我也不知道中文怎么翻译了)打包成静态库验证调用未被隐藏的`hello()`调用隐藏的`bye()`分享屏蔽静态库接口的一种方法.准备hello.c:#include <stdio.h>__attribute__ ((visibility ("default"))) void hello() { printf("Hello World!\n");}hello.h:#ifndef __HELLO__H#define __H原创 2020-05-17 16:31:42 · 1389 阅读 · 0 评论 -
sysroot为何物?
文章目录sysroot为何物Reference本文介绍链接过程中sysroot的作用。sysroot为何物做过交叉编译的同学们,一定对下面这个错误十分熟悉吧:/cross-compiling/ld: cannot find crt1.o: No such file or directory/cross-compiling/ld: cannot find crti.o: No such file or directory在我们的pc上,这两个文件一般在/usr/lib或者/usr/lib32原创 2020-05-17 16:30:15 · 8244 阅读 · 1 评论 -
将二进制文件作为目标文件中的一个段
文章目录查看该平台的ELF文件相关信息转换测试Reference本文将展示,如何将一个二进制文件(如图片、音频等)作为目标文件中的一个段,该技巧主要应用在一些无文件系统的平台。本次的实验场景为i386:x86-64 GNU/Linux,测试音频为nhxc.wav,测试程序为bin2obj.c。查看该平台的ELF文件相关信息生成目标文件$ gcc -c bin2obj.c -o bin2obj.o查看该平台ELF文件相关信息$ objdump -x bin2obj.obin2obj.o原创 2020-05-17 16:24:30 · 540 阅读 · 0 评论 -
--hash-style兼容性问题
文章目录问题名词解释实验分析结论解决方案参考本文记录了解决 --hash-style 兼容性问题的过程。问题dlopen failed: empty/missing DT_HASH in "libxxx.so" (built with --hash-style=gnu?)最近,稳定性监控平台,被这一行错误日志霸榜,刚看到时也一脸懵逼,下面我们来逐步分析。名词解释首先需要查阅一下相关文档,了解一下其中的”新朋友”。DT_HASHELF 中的一个 Sections,保存了一个用于查找符原创 2020-05-17 16:10:13 · 2405 阅读 · 4 评论