随笔分类 - c/c++构建编译链接调试
make, autoconf, cmake构建工具及编译,l连接问题,调试等问题
摘要:#2.正文 2.1 模板 #cmake 版本检查 cmake_minimum_required (VERSION 2.8) #项目名字 project (greenReplace) #设置c++版本 set(CMAKE_CXX_STANDARD 17) set(OpenCV_DIR /root/do
阅读全文
摘要:概览 1.使用top H p pid,去查看一个线程的cpu使用 2.使用pstack 打印运行堆栈,从堆栈观察高出现函数 正文 1.火焰图 使用perf采集数据, F 99 每秒99次; p 999 追踪进程999; g 记录调用栈; proc map timeout 1000, cpu太高的时候
阅读全文
摘要:1.反汇编相关 1.1 设定intel汇编 gdb 默认是att汇编,可通过以下指令进行转换 set disassembly-flavor intel 从配置文件上进行设置也可以 echo "set disassembly-flavor intel" > ~/.gdbinit 1.2 当前运行代码反
阅读全文
摘要:前言 本文介绍了简单的介绍gcc编译一个程序的时候做了什么 正文 一个例子 首先来看一个例子,有两个文件内容如上, fn1.c 中定义了一个函数 fn1() ,而main.c中只是声明了 fn1() 是一个函数,有时我们一般会用如下方式编译, 然后目录下就多了一个可执行文件a.out 但这里封装的太
阅读全文
摘要:程序的编译链接过程如上图, 从源文件生成了目标文件和静态库,目标文件和静态库生成可执行文件,可执行文件运行时通过LD_LIBRARY_PATH查找加载动态库运行 1.目标文件、静态库、动态库文件的生成 目标文件xxx.oc的生成,使用 -c 选项,指定只生成而不链接 gcc -c xxx.c -o
阅读全文
摘要:"原文跳转" 如果存在如下包含头文件的代码,则大多的项目中需要通过“ I foo”和“ I bar”指明两个搜索头文件的目录。 然而,当项目规模很大存在很多的目录时,这种方式将显著地降低项目的编译速度。因为“ I”选项使用得越多,意味着编译每一个C文件时所需进行头文件搜索的目录也越多。 为了避免这一
阅读全文