编译与构建
CMake学习
zhouyuming_hbxt
一个理想主义的工程师
github地址:https://github.com/zhouyuming
展开
-
GNU编译工具链学习笔记01--gdb简介与调试指令总结
gdb学习笔记原创 2020-06-10 17:19:49 · 505 阅读 · 0 评论 -
GNU编译工具链学习笔记02--gdb调试动态链接库总结
在Linux可以用gdb来调试应用程序参考链接https://blog.csdn.net/yasi_xi/article/details/18552871原创 2021-02-03 23:12:45 · 280 阅读 · 1 评论 -
GNU编译工具链学习笔记04--gcc的安装与使用总结
GCC(全称:GNU C Compiler),随着GCC支持的语言越来越多,它的名称变成了GNU Compiler Collection。gcc -o 输出文件名 输入文件名预处理:cpp -o *.i *.c(gcc -E)编译:cc1 -o *.s *.c(gcc -S)汇编:as -o *.o *.s(gcc -c)链接:collect2 -o * *.o...(g...原创 2018-12-09 13:44:42 · 743 阅读 · 0 评论 -
GNU编译工具链学习笔记05--常用编译选项与链接选项使用总结
常用编译选项与链接选项使用总结原创 2021-03-15 18:06:18 · 530 阅读 · 0 评论 -
GNU编译工具链学习笔记06--gdb之core dump分析
参考链接https://www.bilibili.com/video/BV1w54y1H7XX原创 2021-07-07 13:27:30 · 292 阅读 · 0 评论 -
GNU编译工具链学习笔记07--gdb的底层实现原理
gdb的底层实现原理原创 2021-11-08 14:25:24 · 213 阅读 · 0 评论 -
GNU编译工具链学习笔记08--objdump反汇编使用总结
参考链接https://blog.csdn.net/zoomdy/article/details/50563680原创 2021-11-22 10:07:21 · 641 阅读 · 0 评论 -
编译构建工具ninja的使用总结
参考链接:https://blog.csdn.net/whatday/article/details/84579447原创 2021-08-24 15:31:43 · 715 阅读 · 0 评论 -
CMake学习笔记02--静态库static library
静态库static library原创 2021-07-28 13:06:38 · 445 阅读 · 0 评论 -
Makefile学习笔记02--书写规则
规则包含两个部分,一个是依赖关系,一个是生成目标的方法。在规则中使用通配符make支持三各通配符:“*”,“?”和“[...]”。波浪号(“~”)字符在文件名中也有比较特殊的用途。如果是“~/test”,这就表示当前用户的$HOME目录下的test目录。而“~hchen/test”则表示用户hchen的宿主目录下的test目录。(这些都是Unix下的小知识了,make也支持)而在Wi...原创 2019-09-16 20:00:16 · 265 阅读 · 0 评论 -
Makefile学习笔记03--书写命令
显示命令通常,make会把其要执行的命令行在命令执行前输出到屏幕上。当我们用“@”字符在命令行前,那么,这个命令将不被make显示出来。 make参数“-n”或“--just-print”,那么其只是显示命令,但不会执行命令,这个功能很有利于我们调试我们的Makefile,看看我们书写的命令是执行起来是什么样子的或是什么顺序的。 make参数“-s”或“--slient”则是全面禁止命令的...原创 2019-09-18 13:41:03 · 260 阅读 · 0 评论 -
menuconfig的语法和用法学习笔记
配置linux内核时会用到menuconfig工具,如果自建的程序也有控制类的定义选择,也可以考虑使用menuconfig进行配置选择。一种配置文件写法:config MQTT_COMM_SUPPORT bool "CONFIG_MQTT_COMM_SUPPORT" default n help m...原创 2019-10-08 21:11:56 · 745 阅读 · 0 评论 -
C语言之编译过程与gcc学习笔记
.c和.h预编译为.i文件 预处理Preprocessingcpp -o xx.i xx.cgcc -Etest.c -o test.i#include 包含头文件#define 宏替换 不进行语法检查 宏体一般加括号 #ifdef #else #endif 条件编译预定义宏 __FUNCTION__ __LINE__ __FILE__# 字符串化...原创 2019-03-18 22:00:52 · 204 阅读 · 0 评论 -
C语言项目的自动编译工具autoconf、automake|makefile的使用总结
大型C语言项目的makefile、autoconf、configure等工具配合工作的流程总结原创 2021-05-28 14:29:48 · 208 阅读 · 0 评论 -
cygwin使用学习笔记
cygwin使用学习笔记原创 2020-06-03 12:56:21 · 175 阅读 · 0 评论 -
Makefile学习笔记05--条件判断与函数的使用
libs_for_gcc = -lgnunormal_libs =foo: $(objects)ifeq ($(CC),gcc)$(CC) -o foo $(objects) $(libs_for_gcc)else$(CC) -o foo $(objects) $(normal_libs)endif条件表达式的语法为:<conditional-directiv...原创 2019-09-20 16:43:52 · 224 阅读 · 0 评论 -
Makefile学习笔记04--变量的使用
变量的基础变量在声明时需要给予初值,而在使用时,需要给在变量名前加上“$”符号,但最好用小括号“()”或是大括号“{}”把变量给包括起来。如果你要使用真实的“$”字符,那么你需要用“$$”来表示。变量可以使用在许多地方,如规则中的“目标”、“依赖”、“命令”以及新的变量中。变量中的变量foo = $(bar)bar = $(ugh)ugh = Huh?all:echo $...原创 2019-09-20 13:37:41 · 211 阅读 · 0 评论 -
Makefile学习笔记06--make的运行
make的退出码0 —— 表示成功执行。1 —— 如果make运行时出现任何错误,其返回1。2 —— 如果你使用了make的“-q”选项,并且make使得一些目标不需要更新,那么返回2。指定MakefileGNU make找寻默认的Makefile的规则是在当前目录下依次找三个文件——“GNUmakefile”、“makefile”和“Makefile”。其按顺序找这三个文件,...原创 2019-09-20 19:22:00 · 228 阅读 · 0 评论 -
Makefile学习笔记01--基础知识
什么是makefile会不会写makefile,从一个侧面说明了一个人是否具备完成大型工程的能力关于程序的编译和链接编译(compile):首先要把源文件编译成中间代码文件(Windows下.obj文件,Unix下.o文件) 链接(link):把大量的Object File合成执行文件中间目标文件太多时可以打个包,在Windows下这种包叫“库文件”(Library File),也...原创 2019-09-16 10:34:54 · 275 阅读 · 0 评论 -
LLVM与Clang学习笔记01--LLVM与Clang简述
LLVM与Clang简述原创 2020-12-04 15:19:46 · 221 阅读 · 0 评论 -
CMake学习笔记01--基础知识
CMake官网:http://www,cmake.orgCMakeLists.txtPROJECT(HELLO)SET(SRC_LIST main.c)MESSAGE(STATUS "This is BINARY dir " ${HELLO_BINARY_DIR})MESSAGE(STATUS "This is SOURCE dir "${HELLO_SOURCE_DIR})AD...原创 2020-02-10 20:09:17 · 2512 阅读 · 0 评论 -
CMake学习笔记02--典型的CMake工程组织结构
function.cmakefunction(add_object_lib target include_dirs compile_definitions compile_options sources) add_library(${target} OBJECT ${sources}) target_include_directories(${target} PRIVAT...原创 2020-02-13 13:26:04 · 2503 阅读 · 0 评论 -
CMake学习笔记03--VSCode的CMake环境的安装与配置
xxx原创 2020-02-13 17:04:37 · 466 阅读 · 0 评论 -
CMake学习笔记04--编译选项与链接选项的配置标准
flags_gccxxx_armxxx_xxx.cmake# 1. 通过include的方式导入本文件:include(path/flags_gccxxx_armxxx_xxx.cmake)# 2. 导入本文件后,cmake工程中不应该再对下述`CMAKE_XXX`变量进行修改# 通过`add_library` 或 `add_executable` 等cmake内置函数进行构建的对...原创 2020-02-21 19:40:07 · 5294 阅读 · 0 评论 -
CMake学习笔记05--ExternalProject_Add模块
include(ExternalProject)ExternalProject_Add(xxxxxx SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/xxxxxx BINARY_DIR ${CMAKE_CURRENT_SOURCE_DIR}/xxxxxx CONFIGURE_COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/xxxxxx.sh xxxxxx BUILD_COMMAND .原创 2020-05-14 13:26:44 · 20905 阅读 · 1 评论 -
CMake学习笔记06--find_package的使用
find_package的使用原创 2020-12-02 14:46:31 · 227 阅读 · 0 评论 -
CMake学习笔记07--基础语法(字符串、列表、宏、函数)
字符串拼接cmake_minimum_required(VERSION 3.12)project(main)set(str1 "hello ")message(STATUS ${str1})set(str2 "world")message(STATUS ${str2})string(APPEND str2 " ${str1}")message(STATUS ${str2})string(APPEND str2 "!!!")message(STATUS ${str2}).原创 2020-12-26 13:14:09 · 1041 阅读 · 0 评论