摘要:
cl的位置:开始 –> 所有程序 -> Microsoft Visual Studio ->Visual Studio Tools -> Developer Command Prompt编译器产生通用对象文件格式 (COFF) 对象 (.obj) 文件。链接器产生可执行文件 (.exe) 或动态链接库文件 (DLL)。注意,所有编译器选项都区分大小写。若要编译但不链接,请使用/c。语法:CL [option...] file... [option | file]... [lib...] [@command-file] [/link link-opt...]选项optio 阅读全文
摘要:
PE: Portable ExecutableCOFF: Common Object File Format跟ELF一样,PE中也允许程序员将变量后函数放到自定义段。在GCC中使用“__attribute__((section)("name"))”,在VISUAL C++中可以使用 “#pragma”编译器指示。#pragma data_seg("FOO")int global = 1;#pragma data_seg(".data")使用cl 编译器:开始 –> 所有程序 -> Microsoft Visual Stud 阅读全文
摘要:
对于多个输入目标文件,链接器如何将它们的各个段合并到输出文件? 或者说,输出文件中的空间如何分配给输入文件?/*假设有a.c*/extern int sharedint main(){int a = 100;swap(&a,&shared);}/*b.c*/int shared = 1;void swap(int *a, int *b){*a ^= *b ^= *a ^= *b;}“链接器为目标文件分配地址和空间”中的“地址和空间”其实有两个含义:第一个是在输出的可执行文件中的空间;第二个是在装载后的虚拟地址中的虚拟地址空间。这个链接过程分两步:第一步 : 空间与地址分配扫描所 阅读全文