黄永峰《程序设计教学》课外阅读之6--在VC2008中创建和使用静态链接库方法8.pdf
文本预览下载声明
在 VC2008 中创建和使用静态链接库方法之一
黄永峰
1.利用 VC 创建静态链接库
New-〉projects-〉Win32 Static Libaray
新建好工程 CreateStaticLib 后,创建一个.h 文件 staticLib.h
int max(int, int );
对应的.cpp 文件 fighting.cpp
Int max(int x, int y)
{int z;
If(xy) z=x;
Else z=y;
Return z;
}
编译后,在 Debug 文件中便生成了 CreateStaticLib.lib 静态链接库...
2.编写测试工程
新建一个 Win32 Console Application 工程 useStaticLibTest,新建 fighting.cpp 文件
#include stdio.h
#include staticlib.h
#pragma comment (lib, Static_Wrap.lib);
void main()
{ int c;
C=max(10,12);
Printf(“%d”,c);
}
将之前生成的静态库CreateStaticLib.lib 和头文件 staticlib.h 拷到当前目录下,
编译运行即可
以上仅仅是个小的 demo,继续学习中,加油...
在 VC2008 中创建和使用静态链接库方法之二
用 C语言写一个简单的函数,并在控制台(命令行)中将它编译为 DLL。
一、源代码
我们创建一个 C语言源程序:Test.c。关键:__declspec(dllexport) 申明将这个方
法导出到 DLL 中。
源代码:
[cpp] view plaincopyprint?
1. #include stdio.h
2.
3. __declspec(dllexport)intsum(inta,intb)
4. {
5. returna+ b;
6. }
二、编译
我们分别采用 Visual Studio 自带的cl、link,和 MinGW (gcc)进行编译。
2.1 用 Visual Studio 自带的 cl、link进行编译
假设我们在 Windows 上安装了 Visual Studio 2010,其安装目录为:C:\Program
Files\Microsoft Visual Studio 10.0
那么 cl、link 所在的目录为:C:\Program Files\Microsoft Visual Studio 10.0\VC\bin
我们可以在 Visual Studio Command Prompt (2010)中执行这样的命令来把源代码
编译成动态链接库:
[plain] view plaincopyprint?
1. cl /cTest.c
2. link/dllTest.obj
截图如下:
2.2 用 MinGW (gcc)进行编译
MinGW 是 gcc 在 Windows平台上的一个 porting。可以访问 mingw.org 来获得
它。
安装 MinGW 之后,就可以在 Windows平台上使用 gcc 了。用 gcc将上述 Test.c
编译成 Test.dll 的命令是:
[plain] view plaincopyprint?
1. gccsharedoTest.dllTest.c
无图无真相,我们截图如下:
注:使用 MinGW 的时候,如果遇到了“libgmp10.dll is missing...”这样的错误,
可以参考我前面写的一篇小文来解决:
解决 MinGW 运行时的 libgmp10.dll 丢失错误(libgmp10.dll is missing from your computer)
。
在 Linux 中用 GCC建立和使用静态链接库的方法
为了使用方便,可以把这两个函数接口定义为动态链接库或静态链接库。用动态链接
库编译生成的可执行文件需调用.so文件方可正常运行,灵活但稍显麻烦; 用静态链接库编
译生成的可执行文件可直接运行,不用再调用
显示全部