19-20-预处理、编译、汇编、连接

来源:互联网 发布:xp编程器和vvdi哪个好 编辑:程序博客网 时间:2024/05/16 13:50

预处理、编译、汇编、连接

这里写图片描述


由源代码经过预处理、编译、汇编生成.o目标文件

这里写图片描述


这里写图片描述


这里写图片描述


这里写图片描述
链接:
gcc -c test.c -o test.o 先生成.o汇编文件
gcc -o test.out test.o 链接

gcc test.o -o test.out


链接器

这里写图片描述


这里写图片描述
此时的a.out可执行文件不需要file1.o file2.o libc.a 文件的支持,因为在链接的时候连接器已经把连接库的内容直接加入到可执行程序中


这里写图片描述
ar为打包命令、将lib.o文件 加入到lib.a中


这里写图片描述


这里写图片描述
程序用到动态库的时候,一定要手动进行加载动态库,在链接的时候一定要加上 -ldl 命令

//dlib.sochar* name(){    return "Dynamic Lib";}int add(int a, int b){    return a + b;}
int main(){    void* pdlib = dlopen("./dlib.so", RTLD_LAZY);    char* (*pname)();    int (*padd)(int, int);    if( pdlib != NULL )    {        pname = dlsym(pdlib, "name");        padd = dlsym(pdlib, "add");        if( (pname != NULL) && (padd != NULL) )        {            printf("Name: %s\n", pname());            printf("Result: %d\n", padd(2, 3));        }        dlclose(pdlib);    }    else    {        printf("Cannot open lib ...\n");    }    return 0;}

小结

这里写图片描述
这里写图片描述

原创粉丝点击