编译器控制的链接操作
编译器CL没有/c选项时自动的调用linker。CL提供了一些参数控制linker。下面列出一些影响链接的CL参数。
CL参数 CL传入LINK的对应参数 不是.c,.cxx,.cpp,.def的文件 这些文件都被传输给link作为输入 filename.def /DEF:filename.def /Fnumber /STACK:number /Fdfilename /PDB:filename /Fefilename /OUT:filename /Fmfilename /MAP:filename /Gy 创建一个包函数(COMDATs);打开一个函数级链接 /LD /DLL /LDd /DLL /link 余下的命令行传给linker /MD or /MT 传输默认的库名到.obj文件 /MDd or /MTd 传输默认的库名到.obj文件,定义符号_DEBUG /nologo /NOLOGO /Zd /DEBUG /Zi or /Z7 /DEBUG /Zl 在.obj文件中忽略库名
常用链接参数
选项 含义 @ 指定一个响应文件 /ALIGN 指定每个部分对齐 /DEBUG 创建调试信息 /DEBUGTYPE 指定那种调试信息包括进输出文件 /DEF 指定一个模块定义文件(.def) /DEFAULTLIB 当扩展引用没有找到搜索指定的库 /DELAY 控制延迟装载DLL /DELAYLOAD 引起指定DLL为延迟装入 /DLL 建造一个DLL /DRIVER 创建一个核心模式驱动 /DYNAMICBASE Specifies whether to generate an executable image that can be randomly rebased at load time by using the address space layout randomization (ASLR) feature. /FIXED 创建一个程序仅能在指定的基地址起点装载 /EXPORT 输出一个函数 /LIBPATH 在环境库搜索路径前指定一个库搜索路径 /PDB 创建一个程序数据库,用于调试。 /OUT 指定输出文件名 /VERSION 指派版本号 /VERBOSE 打印链接过程中的一切消息 /RELEASE 在.exe头部加入校验
完整的参数说明