2018-5-12 windows 动态链接文件 .dll
三个文件,4个命令,具体如何 我也不造,今天算是对一个c语言文件整个编译过程的最后一步链接有了一点认识,等下看看,想写编译器玩,总觉得不写个编译器对不起自己学了这么多东西-_-. //hello.c #include<stdio.h> #include"dll.h" int main() { hello(); //printf("helloworldn"); return 0; } #include "dll.h" #include<stdio.h> EXPORT void hello(void) { printf ("Hellon"); } #ifdef BUILD_DLL /* DLL export */ #define EXPORT __declspec(dllexport) #else /* EXE import */ #define EXPORT __declspec(dllimport) #endif EXPORT void hello(void); gcc -c hello.c gcc -c -DBUILD_DLL dll.c gcc -shared -o message.dll dll.o -Wl,--out-implib,libmessage.a gcc -o hello.exe hello.o -L./ -lmessage 今天发现静态链接还有动态链接 静态链接就是.lib【windows平台下】的文件啦,静态链接是由链接器在链接时将库的内容加入到可执行程序中的做法。链接器是一个独立程序,将一个或多个库或目标文件(先前由编译器或汇编器生成)链接到一块生成可执行程序。 缺点: 静态链接的最大缺点是生成的 可执行文件太大,需要更多的系统资源,在装入内存时也会消耗更多的时间。 动态链接: 动态链接所调用的库函数代码并没有拷贝到程序的可执行文件中。它仅仅在exe文件中加入了调用的函数所在文件模块(DLL)和调用函数在文件中的位置等信息链接进目标程序,仅当应用程序被装入内存开始运行时,才从DLL中寻找相应函数代码,因此需要相应DLL文件的支持 【以上载自百度百科以及各种博客 侵权删 !!!!!!!!!!!!!!!!!!!!!!!】还有mingw 我们使用的c编译器真的也是靠这个gCC 它是mini gnu for windows缩写啦,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,还有我需要去看书了。我妹子说她记忆力不好,老是忘,我也一样,这些东西要看过写过错过,才有60%记忆。溜啦溜啦 哎呀呀 电视剧太好看了,溜-_- 还有 一个报错 :D:ProgramFilesDev-CppMinGW64x86_64-w64-mingw32lib32libmingw32.a(lib32_libmingw32_a-crt0_c.o) Infunction`main': 3.当指令间需要有延时(给外部设备足够的响应时间;或是软件的延时等),可以插入“NOP”指令。 /* 久久真讨厌专门给我看-_- 哼 喏,好了我也忘记我刚刚说什么了就是这样*/ 刚刚久久给我看了cpu cpu就是处理指令集 ,从内存取指令然后执行,cpu里面有寄存器 ,寄存器里存放下一条指令地址 或者操作数 【真无聊,,,,想拆电脑】反正一切都是是数字形式【废话,你说人话计算机听得懂么】 分页 分段 物理地址 虚拟地址 /*上述我刚刚看的东西*/还有 巴拉巴拉一堆 ,有点明白 【我们程序看到的是虚拟地址经过MMU(Memoery management unit)转换成物理地址)】这个书把这个过程说的很清楚了,还有解释为什么要分页 分段,溜。 (编辑:莱芜站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 如何在Windows上制作相同高度的SWT按钮,文本和标
- windows7下composer安装不了或composer命令无效的
- 带有ANSI代码的文本编辑器/查看器,支持Windows
- winapi – win32 CreateFile2 api调用的目的是什
- Windows/Linux命令查看文件MD5,SHA1,SHA256 文件
- 09、组策略之软件分发(01-02)
- 窗口 – 如何使任务栏闪烁我的应用程序像Messeng
- Windows 8应用程序是否运行符合标准的JavaScript
- Windows Phone 7开发Windows Phone 7开发
- windows-services – 监控单个窗口服务的性能