您的位置:首页 > 运维架构 > Linux

G++ 编译 C++ 方法以及 Linux 编程环境

2011-05-31 09:12 323 查看
很是简单,今天用到,暂做标记,以供初学查阅:

//编译生成可执行文件

g++ -o hello hello.cpp

//运行

./hello

GCC编译命令

gcc -v 查看版本

查找g++的命令帮助 键入 info g++,会显示出gcc的帮助信息,g++大部分参数和gcc命令相同

选项 解释

-ansi 只支持 ANSI 标准的 C 语法。这一选项将禁止 GNU C 的某些特色,

例如 asm 或 typeof 关键词。

-c -o只编译并生成目标文件。

-DMACRO 以字符串“1”定义 MACRO 宏。

-DMACRO=DEFN 以字符串“DEFN”定义 MACRO 宏。

-E 只运行 C 预编译器。

-g 生成调试信息。GNU 调试器可利用该信息。

-IDIRECTORY 指定额外的头文件搜索路径DIRECTORY。

-LDIRECTORY 指定额外的函数库搜索路径DIRECTORY。

-lLIBRARY 连接时搜索指定的函数库LIBRARY。

-m486 针对 486 进行代码优化。

-o FILE 生成指定的输出文件。用在生成可执行文件时。

-O0 不进行优化处理。

-O 或 -O1 优化生成代码。

-O2 进一步优化。

-O3 比 -O2 更进一步优化,包括 inline 函数。

-shared 生成共享目标文件。通常用在建立共享库时。

-static 禁止使用共享连接。

-UMACRO 取消对 MACRO 宏的定义。

-w 不生成任何警告信息。

-Wall 生成所有警告信息。

g++ -o 目标文件名 源文件名

ldd programm 查看programm程序所依赖的共享库(.so)文件

ar crv mm.a x.o y.o 将x.o和y.o合并到一个静态库mm.a文件中

ranlib mm.a 生成静态库的内容表 (不是必须)

emacs基本命令

ctrl+x+f 打开文件

ctrl+x+d 打开目录,查看该目录的子目录

ctrl+x+s 保存当前buffer里的文件

ctrl+s 查找当前buffer里的文本

rename-buffer 修改当前缓冲区的名字

ctrl+shift+ - 回退

ctrl+alt+/ 对选中的代码进行格式化

ctrl+x 松开后 按o 在不同的缓冲区移动焦点

alt+x选中命令缓冲区

ctrl+g取消当前命令

alt+w 复制被选中的代码

ctrl+y 粘帖代码

ctrl+w 剪切代码

ctrl+x 松掉后按backspace 设置断点

ctrl+x+k 关闭当前缓冲区

GDB调试命令

查看gdb帮助信息 gdb –help

注意g++编译时,使用-g命令

gdb 已编译的程序文件名

list 显示源代码

break命令设置断点,可以后面加上函数名称

delete breakpoints 删除所有断点

run 运行程序

step <count> 单步跟踪(自动进入函数)

next <count> 单步跟踪(不自动进入函数)

continue 继续运行

print 变量名查看某变量的值,调试过程中改变某变量的值

info breakpoints 查看程序中断点设置的信息

quit 退出

info thread 列出多个线程号。 thread 查看当前线程号 thread 线程号 选择进入哪个线程进行调试。


Unicode和MultiBytes 字符串的转换

#include <wchar.h>
size_t wcsrtombs (char *dest, const wchar_t **src, size_t len, mbstate_t *ps);

#include <stdlib.h>
size_t mbstowcs(wchar_t *pwcs, const char *s, size_t n);

环境变量

查看环境变量
env

env也可以用来设置环境变量的值,具体看env --help

set 也可是设置环境变量
如果环境变量在一个terminal里设置,就只对这个terminal有效

如果想全局的设置,需要修改
/etc/profile文件
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: