gcc小结
常用编译方式
例:# g++ main.cpp -o main_x64
采用 g++ [文件名] -o [可执行文件名] 的格式。
-g 添加gdb调试选项
-c 只编译不链接,只生成目标文件
-m32 编译32位程序
- 编译32位前安装相关依赖
# dpkg --add-architecture i386
# apt update
# apt install gcc-multilib g++-multilib
-lcrypto链接crypto密码类库 # apt install libssl-devx64架构,编译前安装64位的依赖# apt install libssl-dev:i386x86架构,编译前安装32位的依赖
安全编译选项:
-Wall 编译后显示所有警告
-fpermissive 将不一致代码的诊断从错误降级为警告
NX:
-z execstack 禁用
-z noexecstack 启用,默认是启用的
Canary:
-fno-stack-protector 禁用
-fstack-protector 启用
-fstack-protector-all 全启用
RELRO:
-z norelro 禁用
-z lazy 部分启用
-z now 全启用
PIE:
-no-pie 禁用
-pie 启用

浙公网安备 33010602011771号