如何将c语言编译成动态链接库,将C语言源代码编译成动态链接库
下面我們舉一個(gè)例子,用C語(yǔ)言寫一個(gè)簡(jiǎn)單的函數(shù),并在控制臺(tái)(命令行)中將它編譯為DLL。
一、源代碼
我們創(chuàng)建一個(gè)C語(yǔ)言源程序:Test.c
關(guān)鍵:__declspec(dllexport) 申明將這個(gè)方法導(dǎo)出到DLL中。
源代碼:
[cpp]? view plain copy print ?
#include?"stdio.h"
__declspec(dllexport)intsum(inta,intb)
{
returna?+?b;
}
二、編譯
我們分別采用Visual Studio自帶的cl、link,和MinGW(gcc)進(jìn)行編譯。
2.1 用Visual Studio自帶的cl、link進(jìn)行編譯
假設(shè)我們?cè)赪indows上安裝了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)中執(zhí)行這樣的命令來(lái)把源代碼編譯成動(dòng)態(tài)鏈接庫(kù):
[plain]? view plain copy print ?
cl?/c?Test.c
link?/dll?Test.obj
無(wú)圖無(wú)真相,我們截圖如下:
2.2 用MinGW(gcc)進(jìn)行編譯
MinGW是gcc在Windows平臺(tái)上的一個(gè)porting。可以訪問(wèn) mingw.org 來(lái)獲得它。
安裝MinGW之后,就可以在Windows平臺(tái)上使用gcc了。用gcc將上述Test.c編譯成Test.dll的命令是:
[plain]? view plain copy print ?
gcc?-shared?-o?Test.dll?Test.c
無(wú)圖無(wú)真相,我們截圖如下:
注:使用MinGW的時(shí)候,如果遇到了“l(fā)ibgmp-10.dll is missing...”這樣的錯(cuò)誤,可以參考我前面寫的一篇小文來(lái)解決:
解決MinGW運(yùn)行時(shí)的libgmp-10.dll丟失錯(cuò)誤(libgmp-10.dll is missing from your computer)
轉(zhuǎn)自:http://blog.csdn.net/xinyaping/article/details/7284899
總結(jié)
以上是生活随笔為你收集整理的如何将c语言编译成动态链接库,将C语言源代码编译成动态链接库的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 如何自动执行Excel的多次替换--Ex
- 下一篇: Macbook全系列详细分析及购机指南