Linux编译,编辑,调试等方面知识

2014-11-18 20:44:12 · 作者: · 浏览: 14

一、编辑工具的使用。(各2分)


1)如何使用vi进行块拷贝、粘贴、删除的操作


2)如何设置Tab的长度,以及自动缩进的长度


3)如何使用tag进行代码阅读


4)如何在1~10行,有确认的进把所有的RedHat改为RedFlag


5)在SourceNavigator中,如何跳到一个变量的声明处?如何得知光标当前的位置在那个函数体内?



二、编译器与调试器。(各2分)


1)如何使用gcc得到宏展开的中间代码


2)如何通过gcc在命令行中传入宏定义


3)在那一级优化的情况下,内联函数才真正的内联到代码中


4)gdb的watch命令如何使用,有何缺点


5)gdb中使用什么命令可以显式调用的栈帧,如何查看某个栈帧上的局部变量


6)如何使用gdb调试多进程


7)如何使能/禁止core dump?



三.库。(各2分)


1)如何知道XSetIMValues这个符号在那个X的库文件中


2)如何读取C++的符号名,更具可读性


3)请解释动态库的soname概念


4)解释在链接时rpath选项的含义



四、Makefile。(10分)


如果有一个简单的Test项目目录如下:


# tree Test


Test


|– common.h


|– main.cpp


|– test.cpp


`– test.h



1)使用wildcard、patsubst函数编写一个C++项目的Makefile文件


2)使用automake、autoconfig编写一个支持configure选项的configure.in脚本