常用开发工具命令行参考Linux&Windows

1. gcc,GCC编译器

  • -E:只进行预处理
  • -c:只编译不链接
  • -o ‘filename’:指定输出文件名
  • -S:输出编译后的汇编代码文件
  • -I:指定头文件路径
    参考如下常用开发工具命令行参考Linux&Windows_第1张图片

2. ld,GNU链接器

  • -static:静态链接
  • -l‘libname’:指定链接某个库
  • -e name:指定name为程序入口
  • -r:合并目标文件,不进行最终链接
  • o:指定输出文件名
  • -s:清除输出文件的符号信息
  • -L‘directory’:指定链接时查找路径,多个路径用冒号隔开
  • -M:将链接的符号和地址输出为一个映射文件
    参考如下
    常用开发工具命令行参考Linux&Windows_第2张图片

3. objdump,GNU目标文件可执行文件查看器

  • -s:显示文件所有内容
  • -S:显示源代码和反汇编代码
  • -W:显示文件中包含DWARF调试信息格式的段
  • -t:显示文件中的符号表
  • -T:显示动态链接符号表
  • -x:显示文件的所有头文件信息
    常用开发工具命令行参考Linux&Windows_第3张图片

4. cl,MSVC编译器

  • /c:只编译不链接
  • /Za:禁止语言扩展
  • /link:链接指定的模块或给链接器传递参数
  • /Od:禁止优化
  • /O2:以允许速度最快为目标优化
  • /O1:以最节省空间为目标优化
  • /GR或/GR-:开启或关闭RTTI
  • /Gy:开启函数级别链接
  • /GS或/GS-:开启或关闭
  • /Fa:输出汇编文件
  • /E:只进行预处理并且把结果输出
  • /I:指定头文件包含目录
  • /Zi:启用调试信息
  • /LD:编译产生DLL文件
  • /LDd:编译产生DLL文件(调试版)
  • /MD:与动态多线程版本运行库MSVCRT.LIB链接
  • /MDd:与调试版动态多线程版本运行库MSVCRTD.LIB链接
  • /MT:与静态多线程版本运行库LIBCMT.LIB链接
  • /MTd:与调试版静态多线程版本运行库LIBCMTD.LIB链接

5. link,MSVC链接器

  • /BASE:address:指定输出文件的基地址
  • /DEBUG:输出调试模式版本
  • /DEF:filename:指定模块定义文件.DEF
  • /DEFAULTLIB:library:指定默认运行库
  • /DLL:产生DLL
  • /ENTRY:symbol:指定程序路口
  • /EXPORT:symbol:指定某个符号位导出符号
  • /HEAP:指定默认堆大小
  • /LIBPATH:dir:指定链接时库搜索路径
  • /MAP:产生链接MAP文件
  • /NODEFAULTLIB:禁止默认运行库
  • /OUT:指定输出文件名
  • /RELEASE:已发布版本产生输出文件
  • /STACK:指定默认栈大小
  • /SUBSYSTEM:指定子系统

6. dumpbin,MSVC的COFF/PE文件查看器

  • /ALL:显示所有信息
  • /ARCHIVEMEMBERS:显示LIB文件中的所有目标文件列表
  • /DEPENDENTS:显示文件的动态链接依赖关系
  • /DIRECTIVES:显示链接器指示
  • /DISASM:显示反汇编
  • /EXPORTS:显示导出函数表
  • /HEADERS:显示文件头
  • /IMPORTS:显示导入函数表
  • /LINENUMBERS:显示行号信息
  • /SECTION:name:显示某个段
  • /SECTION:显示文件概要信息
  • /SYMBOLS:显示文件符号表
  • /TLS:显示线程局部存储TLS信息

你可能感兴趣的:(Linux)