GCC编译
文章平均质量分 87
mayue_csdn
这个作者很懒,什么都没留下…
展开
-
IDA 介绍和使用
IDA的新手入门指南IDA的反编译插件hexrays decompiler逆向分析工具IDA与开源工具Ghidra、Cutter对比测评IDA(Interactive DisAssembler)是一款功能强大的反汇编工具,用于分析和逆向工程二进制文件。它被广泛用于软件漏洞分析、恶意代码分析、逆向工程等领域。以下是IDA的一些主要特点和功能:反汇编:IDA可以将二进制文件转换为易于阅读和理解的汇编代码。它支持多种处理器架构,包括x86、ARM、MIPS等。原创 2023-07-03 17:02:23 · 5655 阅读 · 0 评论 -
GNU Binutils 工具集介绍
GNU Binutils 介绍Binutils官网地址GNU Binutils 是一组二进制工具集,即GNU Binary Utilities,是一套用于创建、管理和维护二进制目标文件的工具集合,包括addr2line、ar、gprof、nm、objcopy、objdump、ranlib、size、strings、strip。注意,这里千万不要理解错了,不是说这些 Binutils 工具只提供二进制文件,而是说这些工具的目的是用于操作二进制文件的,而不是针对于文本或者源代码。转载 2022-12-17 22:47:45 · 970 阅读 · 0 评论 -
Makefile 使用总结
转自:https://www.cnblogs.com/wang_yb/p/3990952.html1. Makefile 简介Makefile 是和 make 命令一起配合使用的.很多大型项目的编译都是通过 Makefile 来组织的, 如果没有 Makefile, 那很多项目中各种库和代码之间的依赖关系不知会多复杂.Makefile的组织流程的能力如此之强, 不仅可以用来编译项目, 还可......转载 2022-07-07 16:51:06 · 1607 阅读 · 0 评论 -
CMake 入门实战和实践
CMake 入门实战https://www.hahack.com/codes/cmake/#转载 2021-11-10 09:29:29 · 145 阅读 · 0 评论 -
设置GDB动态库搜索路径
启动gdb调试方式一:gdb exe core方式二:gdb exe(gdb) core-file core方式三:gdb -c core(gdb) file exeGDB动态库搜索路径https://www.cnblogs.com/tibetanmastiff/p/4759995.html设备上缺少lib库或者lib库被strip时,需要用到其他路径的动态库。set solib-absolute-prefix /mnt/test/libset solib-search-pa原创 2021-03-05 09:42:45 · 7725 阅读 · 2 评论 -
Linux程序的编译链接
Linux程序的编译链接https://blog.csdn.net/blackmanren/article/details/78578612原创 2020-12-15 14:01:06 · 125 阅读 · 0 评论 -
交叉编译GDB
阅读目录一、下载源码包编译gdb源码编译gdbserverGDB+GDBServer的使用使用GDB调试core文件本章下载和使用的gdb版本是gdb-7.12.tar.gz一、下载源码包gdb官网下载,这里下载的是gdb-7.8.2.tar.xz,放在~/Downloads下。http://www.gnu.org/software/gdb/http://ftp.gnu.org/gnu...原创 2020-06-16 09:49:11 · 8257 阅读 · 0 评论 -
设备GDB调试
设备GDB调试转载 2020-06-16 10:08:01 · 3867 阅读 · 1 评论 -
Linux 可执行程序动态库搜索路径/Linux 程序加载找不到动态库
Linux 程序运行时动态库搜索路径原创 2019-04-22 19:55:33 · 2804 阅读 · 1 评论 -
编译器内置宏定义__DATE__、__TIME__、 __FILE__、__LINE__
概述__DATE__ :表示当前日期的字符串,格式为month/day/year(月/日/年).__TIME__ :表示当前时间,格式为hour:minute:second(时:分:秒).__FILE__:表示正在处理的当前文件名字符串__LINE__ :表示正在处理的当前行号__FUNCTION__ :表示正在处理的函数名__STDC__:表示编译器是否遵循ANSI C标准,若果是,...原创 2019-08-14 19:37:22 · 8782 阅读 · 0 评论 -
linux下查看可执行文件的相关信息
阅读目录参考资料file 可执行文件 可查看可执行文件是ARM架构还是X86架构nm 可执行文件 可查看文件中的符号,包括全局变量,全局函数等ldd 可执行文件 可查看文件执行所需要的动态库strings 可执行文件 可查看文件中所有的符号,包括编译器版本信息readelf 可执行文件 可查看文件的所有详细信息,包括文件的头信息,动态库信息,段信息等参考资料...转载 2020-01-17 16:55:14 · 2202 阅读 · 0 评论 -
linux查看动态库/程序依赖的库
阅读目录objdump命令readelf命令ldd命令在服务端查看哪些进程在使用某一个so参考资料objdump命令# 查看依赖的库objdump -x xxx.so | grep NEEDED# 查看可执行程序依赖的库objdump -x ./testTime | grep NEEDEDreadelf命令# 查看依赖的库readelf -a xxx.so | grep "S...原创 2020-01-17 15:16:55 · 20518 阅读 · 0 评论 -
linux查看静态库和动态库有哪些函数
查看静态库中有哪些函数https://blog.csdn.net/tao546377318/article/details/51727696nm -g -C --defined-only xxxx.a原创 2020-01-17 14:29:52 · 13850 阅读 · 0 评论 -
linux下查看包含的头文件的源文件
如果是系统的文件,那么到 /usr/include 下找找就行;如果是自定义的头文件,到你的工程的根目录下找找。可以用这个命令:find ./ -name "test.h"原创 2019-12-19 11:21:39 · 1127 阅读 · 0 评论 -
#pragma 预处理指令详解
#pragma 预处理指令详解参考:https://blog.csdn.net/mayue_web/article/details/88980206原创 2019-04-02 20:21:26 · 167 阅读 · 0 评论 -
linux链接非标准命名的静态库
本文转自:https://blog.csdn.net/aguei868/article/details/52624065在项目中遇到隐蔽一个问题,如下:按上面的方式进行链接,提示一直找不到-lipc_server,后面发现是由于生成的库没有加lib前缀导致的,应该要这种格式libipc_server.a,但是另一种方式可以链接ipc_server.a这种形式的库,如下:这种方式直接指定对...转载 2018-11-27 19:43:57 · 695 阅读 · 0 评论 -
开源协议(GPL,LGPL,BSD,MIT,Apache,MPL)
https://blog.csdn.net/cacacai/article/details/79703719https://bbs.csdn.net/topics/390020756转载 2020-02-29 14:40:49 · 222 阅读 · 0 评论 -
__attribute__((packed))详解
概述1.__attribute__ ((packed)) 的作用就是告诉编译器取消结构在编译过程中的优化对齐,按照实际占用字节数进行对齐,是GCC特有的语法。这个功能是跟操作系统没关系,跟编译器有关,gcc编译器不是紧凑模式的,我在windows下,用vc的编译器也不是紧凑的,用tc的编译器就是紧凑的。例如:在TC下:struct my{ char ch; int a;} sizeof(int...转载 2019-07-04 20:23:52 · 16307 阅读 · 0 评论 -
makefile问题记录
阅读目录1、makefile 报错:`skipping incompatible`2、makefile -m323、Makefile 中 -wl ,rpath 以及 O0 O1 O2 O3 Os 的用法3、makefile 选择编译器4、Makefile中ranlib的作用详解1、makefile 报错:skipping incompatiblehttps://blog.csdn.net/w......原创 2019-07-16 20:36:18 · 1050 阅读 · 1 评论 -
makefile编译与链接选项
makefile编译链接选项转载 2019-07-04 20:38:47 · 9450 阅读 · 0 评论 -
Makefile基本模板(包括静态链接库、动态链接库、可执行文件)
阅读目录1、生成可执行文件的makefile2、生成静态链接库的makefile3、生成动态链接库的makefile本文把makefile 分成了三份:生成可执行文件的makefile,生成静态链接库的makefile,生成动态链接库的makefile。这些makefile都很简单,一般都是一看就会用,用法也很容易,只需要把它们拷贝到你的代码的同一目录下,然后就可以用 make 来生成目标文...转载 2019-06-26 18:47:51 · 3051 阅读 · 0 评论 -
GCC编译C语言程序的过程
gcc/g++编译流程四步骤1.预处理,生成预编译文件(.i文件):gcc –E hello.c –o hello.i2.编译,生成汇编代码(.s文件):gcc –S hello.i –o hello.s3.汇编,生成目标文件(.o文件):gcc –c hello.s –o hello.o4.链接,生成可执行文件:gcc hello.o –o hello//hello即为可...转载 2018-11-16 18:35:16 · 2876 阅读 · 1 评论 -
linux gcc/g++编译参数 -l(大写i)-L(大写l) -l(小写l)
使用举例:(有libtest.a静态库)g++ -o compress compress.cpp -I./include/ -L/lib/ -ltest说明:1)-I(大写i):指定头文件搜索路径;-I./include/表示将./include/目录作为第一个寻找头文件的目录,寻找的顺序是:./include/ --> /usr/include --> /usr/...原创 2018-11-15 20:58:57 · 3175 阅读 · 0 评论 -
Linux静态库和动态库的命名规则和编译链接
文章转自:https://www.cnblogs.com/linuxbo/p/4301724.html1、Linux静态库和动态库的命名规则静态函数库静态库的名字一般是libxxx.a,利用静态库编译生成的文件比较大,因为整个静态库所有的数据都会被整合进目标代码中。a)优点编译后,可执行文件不需要外部支持;b)缺点生成的可执行程序大;静态库改变了,就需要重新编译可执行程序。动态库函...翻译 2018-11-15 20:40:46 · 2648 阅读 · 0 评论 -
gcc: error trying to exec 'cc1plus': execvp
在通过gcc编译.cpp文件时出现如下错误提示:gcc: error trying to exec ‘cc1plus’: execvp出现这个问题,有两种可能:第一,你没有安装g++第二,你的gcc的版本和g++版本不相符合解决方案如下:首先安装gcc和g++及一些依赖包sudo apt-get install build-essential //我这里执行完这条,即可编译sudo...转载 2018-10-24 19:12:34 · 2715 阅读 · 0 评论 -
gcc -O1 -O2 -O3 优化的原理是什么?
http://www.mamicode.com/info-detail-2373500.htmlhttps://blog.csdn.net/qq_31108501/article/details/51842166转载 2020-02-29 11:31:27 · 647 阅读 · 0 评论 -
linux gcc strip命令简介
阅读目录strip简介strip示例strip命令用法程序开发是否要strip参考资料strip简介strip经常用来去除目标文件中的一些符号表、调试符号表信息,以减小静态库、动态库和程序的大小。strip支持的选项可通过如下命令查看:strip --helpstrip示例有如下test.c文件//test.c#include <stdio.h> int add...转载 2020-01-16 16:47:16 · 11839 阅读 · 0 评论 -
linux查看一个c程序依赖的动态链接库
在linux下一个程序编译成功了,并不一定可以成功运行,原因是有些程序调用了动态链接库,而程序拷贝到其他电脑上由于缺少动态链接库导致无法运行。可通过如下命令查看程序依赖哪些动态库:ldd 程序示例1:mayue:~/nfs/gdb$ ldd gdbserver checking sub-depends for 'not found'checking sub-depends for '...原创 2020-01-16 10:38:40 · 2526 阅读 · 0 评论 -
linux 源码编译 ./configure 的配置和用法
阅读目录1. linux从源码编译到安装软件的3个步骤2. ./configure 的配置和用法基本配置配置安装目录微调安装目录配置程序名称配置系统类型配置可选特性配置包选项配置编译环境变量3. 综合示例1. linux从源码编译到安装软件的3个步骤./configure make make install 1)./configure:configure是一个脚本,一般由Au...原创 2020-01-15 16:31:39 · 36791 阅读 · 1 评论 -
交叉编译之./configure --build,--host,--target设置
在对源码进行交叉编译的时候,关键的一步是设置configure的参数,其中有三个参数–build、–host、–target的区别如下build:执行代码编译的主机,正常的话就是你的主机系统。这个参数一般由config.guess来猜就可以。当然自己指定也可以。 host:编译出来的二进制程序所执行的主机,因为绝大多数是本机编译,本机执行,所以这个值就等于build。只有交叉编译...转载 2020-01-15 13:59:23 · 21142 阅读 · 1 评论 -
GCC与gcc,g++区别
阅读目录概念gcc 与 g++的区别编译的四个阶段常见的误区误区一:gcc只能编译C代码,g++只能编译c++代码误区二:编译只能使用gcc,连接只能使用g++误区三:extern “C” 与 gcc/g++ 有关系误区四:gcc不会定义__cplusplus宏,而g++会参考资料概念GCC:GNU Compiler Collection(GUN 编译器集合),它可以编译C、C++、JAV、...转载 2020-03-13 10:17:44 · 444 阅读 · 0 评论