Linux下的C++编程入门教程
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
hello.exe
G++简介与实例
G++功能选项 G++功能选项
• -I 指定头文件路径 • -L –l指定库文件路径 • 常用g++编译选项 -g -pipe –Wall –fPIC 常用g++编译选项 g++
一条标准格式的g++语句 一条标准格式的g++语句 g++ g++ -g –pipe –Wall –fPIC hello.cpp -o hello.exe -Ibbc_log Lbbc_log/lib -lbbc_log -lboost_thread
GDB高级
• • • • • • • -d 指出源代码所在路径 list <line> 显示源代码 ptype 显示类型定义代码 x查看内存地址的值,格式 x /(NUM)(FMT) ADDRESS Info local查看当前栈的局部变量值 Info arg 查看当前栈的参数值 Where full查看当前堆栈所有信息
Makefile初步
• 什么是Makefile? 什么是Makefile? Makefile
Makefile是一个按格式书写的g++语句文件。 Makefile是一个按格式书写的g++语句文件。 是一个按格式书写的g++语句文件 Makefile是 g++ 和 shell语句集合。它允许我们按照规定格 shell语句集合 语句集合。 Makefile是 式使用以上两种语句设计编译行为。 式使用以上两种语句设计编译行为。 Make是一种控制编译或重复编译的软件工具。 Make是一种控制编译或重复编译的软件工具。它自动决定一个 是一种控制编译或重复编译的软件工具 程序中哪些文件需要重新编译,并重新运行指定的命令。 程序中哪些文件需要重新编译,并重新运行指定的命令。
• 一个最简单的Makefile 一个最简单的Makefile
all : g++ hello.cpp -o hello.exe
Makefile 标准篇
• • • • 先编译,后连接 变量的定义与使用 几个奇怪的变量(自动变量):$@,$<,$^ 内建函数:wildcard(), patsubst()
– snprintf(), __FUNCTION__, __FILE__, __LINE__ – #ifdef WIN_32 #define … #endif
Biblioteka Baidu
Q&A
Thanks!
all : $(target1) $(target2)
• 调用子文件夹中的Makefile 调用子文件夹中的Makefile
subsystem : cd subdir && make
GDB 单步调试
• 命令格式 gdb ./program_name gdb core_name ./program_name • 常用子命令 break <line_num> -设置断点 continue -继续执行直到下个断点 step -单步跳入 next -单步跳过 print -打印值 quit -退出
• 来看一个相对标准的Makefile
Makefile 高级篇
• 生成.a文件 生成.a文件 .a
ar -ruv $(LIB_DIR)/lib$(LIBNAME).a $(OBJS) $(OBJS): *.cpp $(CXX) -c $^ -o $@ $(INCLUDEFLAGS)
• 多个Target的编译 多个Target的编译 Target
Linux下c++编程
北邮百度俱乐部 苏冉旭 suranxu.bupt@gmail.com
为什么学习Linux下C++开发
Agenda
Linux下开发环境
VIM + gcc + Makefile + gdb 您是用VIM还是VIM还是VIM?
• 命令行界面,无法编译,难以多文件操作,但支持插件 • 给力但复杂的emacs
其它常用方案:
• Windows下IDE编写,Linux下编译部署 • SecureCRT-SZ/RZ 或 Samba 上传下载
G++简介与实例
g++/gcc g++/gcc 是什么 Linux下的c/c++编译器 下的c/c++ Linux下的c/c++编译器 一个最简单的g++语句 一个最简单的g++语句 g++ g++ hello.cpp –o
Makefile基础
• 文件名为“Makefile”或“makefile” 文件名为“Makefile” makefile” • Makefile的规则格式: Makefile的规则格式: 的规则格式
目标(target) : 依赖(prerequiries) 目标(target) 依赖(prerequiries) <tab>命令 命令(command) <tab>命令(command)
Windows迁移代码常见问题
• 缺少最后一行空行 • 多余的/r回车符 多余的/r回车符 /r
– dos2unix <file> – fromdos <file>
• 中文注释乱码
– iconv –f gbk –t utf8
• 不能忍的头文件
– #include<windows.h>
• 不兼容的宏,库函数 不兼容的宏,