pe文件类型精简总结
1 windows下按照标准格式编写dll,然后gcc编译加-shared,生成dll文件。
2 windows linux下均可以将.o文件,使用ar.exe,链接成lib[name].a文件,.a文件用来静态链接,生成.exe文件。
编译时候 gcc -o run.exe main.c libname.a.
- 提示:dll的c源文件也可以用来当做.a文件的源,但是倒着回去不行。
3 同一个dll文件,可以有两种不同的用法:Loading Library 和 Runtime Library.
- Loading Library --- 使用函数时候,像正常时候一样,不过头文件中的声明变为:
__declspec(dllimport) void function_name();其他和平时一样。
在编译的时候使用gcc -o run.exe main.c DLLNAME.dll直接链接,这个dll为Loading Library。 - Runtime Library --- 使用函数时候,使用LoadLibrary(), GetProcAddress().等系统调用加载.
不需要链接。
Linux生成的.so动态链接库,也是一样的。都有两种用法。Linux里面要更加简单。
关注:
- 在Windows下的编译,链接神马的,为了节省时间我就都用Dev C++编译吧。
- 在Linux下的时候分别使用gcc, ld, ar 进行编译,链接,生成静态库。