
编译学习
用于C编译的学习记录
追梦-北极星
公众号:茶色光阴
有想要的资料可以找我
展开
-
C/C++的编译基础知识
目录一、编译的过程都有哪些二、程序一定要从main函数开始运行吗?三、make与cmake的区别一、编译的过程都有哪些C语言编译过程详解 - CarpenterLee - 博客园预处理、编译、汇编、链接预处理:预处理用于将所有的#include头文件以及宏定义替换成其真正的内容,预处理之后得到的仍然是文本文件;gcc -E -I./inc test.c -o test.i编译:将程序编译成汇编gcc -S -I./inc test.c -o test.s..原创 2022-03-29 18:24:40 · 993 阅读 · 0 评论 -
编译工具链介绍
参考:交叉编译工具链介绍_五里之南的博客-CSDN博客_交叉编译链是什么GNU Binutils:一般在解压后的交叉编译工具链bin目录下会有很多可执行程序工具ld :GNU链接器。as :GNU汇编器。addr2line:将地址转换为文件名和行号。ar:用于创建,修改和提取档案的实用程序。nm:列出目标文件中的符号。objcopy:复制并转换目标文件。objdump:显示目标文件中的信息。readelf:显示来自任何ELF格式对象文件的信息。size:列出的对象或归档文件的部原创 2022-03-29 16:53:49 · 2940 阅读 · 0 评论 -
google breakd使用
编译时出错:mv -f $depbase.Tpo $depbase.PoIn file included from ./src/client/linux/dump_writer_common/thread_info.h:37, from ./src/client/linux/minidump_writer/linux_dumper.h:54, from ./src/client/linux/minidump_writ...原创 2021-12-21 10:21:18 · 341 阅读 · 0 评论 -
Makefile将某一部分文件不编译
重构过程中,先重构部分代码,所以需要不编译某些文集然后使用Makefile的$(filter-out)不编译一部分代码,但是发现并没有剔除##modules sdkSDKFILES += $(wildcard IDMSdk/*.cc)CXXSRCS += $(filter-out IDMSdk/idm_uwb*.cc, $(SDKFILES))经分析,有可能是需要在$(filter-out)后的所有剔除的文件都需要空格,上面的匹配可能无法作为一个空格隔开的列表呈现(表达不是很好),所以原创 2021-09-09 20:14:39 · 2529 阅读 · 0 评论 -
gdbserver使用
补充1、gdbserver的使用,--attach的使用2、set follow-fork-mode child 的使用,但是暂时不知道为什么一直调试的parent进程3、编译某个平台host的gdb4、了解gdb的编译的--target,--host的编译,了解各个编译工具链的的gdb是如何编译的5、记录gdb在其他设备直接修改源码链接,可以直接找到源码的问题...原创 2021-07-15 10:58:57 · 2670 阅读 · 0 评论 -
交叉编译gdb
gdb版本:gdb-7.2gdb下载链接:http://ftp.gnu.org/gnu/gdb/首先将编译工具链设置到PATH路径,可以在终端直接使用arm-linux-g++/home/wangqingyuan/bin:/home/wangqingyuan/Android/Sdk/ndk/22.1.7171670:/home/wangqingyuan/Android/Sdk/tools:/opt/java/jdk1.8.0_202/bin:/opt/java/jdk1.8.0_202/j原创 2021-07-12 16:13:50 · 1022 阅读 · 0 评论 -
可执行程序找不到编译生成的.so库
1、将编译好的.so库放到可执行文件同目录下,但是依然找不到这个动态库参考:https://stackoverflow.com/questions/480764/linux-error-while-loading-shared-libraries-cannot-open-shared-object-file-no-sYour library is a dynamic library. You need to tell the operating system where it can locate原创 2021-07-08 15:59:43 · 416 阅读 · 0 评论 -
gn编译学习
https://chromium.googlesource.com/chromium/src/tools/gn/+/48062805e19b4697c5fbd926dc649c78b6aaa138/docs/quick_start.md原创 2021-07-07 17:01:19 · 1578 阅读 · 0 评论 -
C/C++检查内存泄露
1、mtrace经查,不适合C++的内存泄漏检查,在用g++ *.cc -o test时,再用addr2line查找具体的代码位置时,无法找到符号,后来发现,在原创 2021-06-15 20:35:28 · 97 阅读 · 0 评论 -
cmake集成C/C++工程
集成步骤一、在ubuntu下安装cmake分别创建include、lib、src、build文件夹; include中放IDMSdk的头文件,lib中放用到的库,src用于放二次开发的文件,build存放编译的结果; lib里面可以放静态库、动态库,通过target_link_libraries这个指定链接哪些库 使用CMakeList.txt将这些文件进行编译: X86环境下不需要设置CMAKE_CXX_COMPILER、CMAKE_C_LINK_EXECUTABLE,当需要自己指定的编译原创 2021-03-25 19:28:01 · 709 阅读 · 0 评论 -
给windows的dll添加版本号
两种方法:一、使用资源文件.rc文件编译到版本里,这是gn的编译,暂未测试https://gn.googlesource.com/gn/+/master/docs/reference.md#func_toolhttps://chromium.googlesource.com/chromium/src/build/toolchain/+/refs/heads/master/win/BUILD.gn tool("rc") { command = "$python_path原创 2020-07-21 10:46:27 · 2008 阅读 · 0 评论 -
gn学习
gn快速入门官方文档:https://gn.googlesource.com/gn/+/master/docs/quick_start.md#Passing-build-argumentsgn的参考手册https://gn.googlesource.com/gn/+/master/docs/reference.md#var_root_out_dirroot_out_dirsource_file_partcopy命令 # Write a rule that copies .原创 2020-07-15 12:03:50 · 756 阅读 · 0 评论