资源描述
Linux下c+编程,北邮百度俱乐部苏冉旭suranxu.bupt,为什么学习Linux下C+开发,Agenda,果断学习Linux下C+!,Linux下开发环境,G+简介与实例,g+/gcc是什么Linux下的c/c+编译器一个最简单的g+语句g+hello.cppohello.exe,G+简介与实例,G+功能选项-I指定头文件路径-Ll指定库文件路径常用g+编译选项-g-pipeWallfPIC一条标准格式的g+语句g+-gpipeWallfPIChello.cpp-ohello.exe-Ibbc_log-Lbbc_log/lib-lbbc_log-lboost_thread,Makefile初步,什么是Makefile?Makefile是一个按格式书写的g+语句文件。Makefile是g+和shell语句集合。它允许我们按照规定格式使用以上两种语句设计编译行为。Make是一种控制编译或重复编译的软件工具。它自动决定一个程序中哪些文件需要重新编译,并重新运行指定的命令。,Makefile基础,文件名为“Makefile”或“makefile”Makefile的规则格式:目标(target):依赖(prerequiries)命令(command)一个最简单的Makefileall:g+hello.cpp-ohello.exe,Makefile标准篇,先编译,后连接变量的定义与使用几个奇怪的变量(自动变量):$,$,$内建函数:wildcard(),patsubst()来看一个相对标准的Makefile,Makefile高级篇,生成.a文件ar-ruv$(LIB_DIR)/lib$(LIBNAME).a$(OBJS)$(OBJS):*.cpp$(CXX)-c$-o$(INCLUDEFLAGS)多个Target的编译all:$(target1)$(target2)调用子文件夹中的Makefilesubsystem:cdsubdir&make,GDB单步调试,命令格式gdb./program_namegdbcore_name./program_name常用子命令break-设置断点continue-继续执行直到下个断点step-单步跳入next-单步跳过print-打印值quit-退出,GDB高级,-d指出源代码所在路径list显示源代码ptype显示类型定义代码x查看内存地址的值,格式x/(NUM)(FMT)ADDRESSInfolocal查看当前栈的局部变量值Infoarg查看当前栈的参数值Wherefull查看当前堆栈所有信息,Windows迁移代码常见问题,缺少最后一行空行多余的/r回车符dos2unixfromdos中文注释乱码iconvfgbktutf8不能忍的头文件#include不兼容的宏,库函数snprintf(),_FUNCTION_,_FILE_,_LINE_#ifdefWIN_32#define#endif,Q&A,Thanks!,
展开阅读全文