分類: 電腦/網(wǎng)絡(luò) 程序設(shè)計(jì) 其他編程語言
成都創(chuàng)新互聯(lián)公司公司2013年成立,先為寧夏等服務(wù)建站,寧夏等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為寧夏企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
問題描述:
我寫了個函數(shù),想弄成庫,怎么弄啊?
我只是把它定義到頭文件中了,可是不行??!
編譯的時(shí)候編譯器說是打不開這個頭文件!
怎么辦啊手斗?
解析:
可以,只要實(shí)現(xiàn)文件也加到工程里面就可以了.
注意,工程要包含你的頭文件和實(shí)現(xiàn)文件,這樣你自己的函數(shù)庫就可以畢彎磨在任何需要的工程中鬧歷使用了.
可以,只要的程序調(diào)用的時(shí)候能找到函數(shù)的定義就可以了.所謂定義就是函數(shù)的具體實(shí)現(xiàn)程序.
簡單的一個例子,但是基本的程序編譯的嘩陵思想都在里面了,具體的需要你自己體會和查資料
跟著下面的步驟走
------------------------
第一步:我的電腦-屬性-高級-環(huán)境變量
添加3個變量
1.名字:path 值:vc的安裝目錄里面包含cl.exe的bin目錄路徑+";"+vc目錄下包含mspdb80.dll的目錄的路徑
比如我的是D:\Program Files\Microsoft Visual Studio 8\VC\bin;D:\Program Files\Microsoft Visual Studio 8\Common7\IDE;
2.名字:include 值:vc安裝目錄下的include目錄,主要是為了找到頭文件,我的是D:\Program Files\Microsoft Visual Studio 8\VC\include;D:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\Include;
3.名字:lib 值:vc目錄下包含庫文件的目錄路徑
我的是D:\Program Files\Microsoft Visual Studio 8\VC\lib;D:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\Lib;
第二步:需要下面兩個文件
//-------------libdemo.c
#include 梁散stdio.h
void lib_func()
{
printf("this routine in lib\n");
}
//------------main.c
void lib_func();
int main(int argc, char *argv[])
{
lib_func();
}
第三步:命令
cl /c libdemo.c '編譯libdemo.c 生成libdemo.obj
lib libdemo.obj '生成libdemo.lib 庫文件
cl /c main.c '編譯main.c
link main.obj libdemo.lib '生成main.exe
---------------------------------------------------
呵呵 加點(diǎn)東西,參亂渣戚看4樓的建議,在做個dll,COM組件就不做了,有點(diǎn)復(fù)雜了
1。把libdemo.c 稍微改下
//-------------libdemo.c
#include stdio.h
__declspec (dllexport) void lib_func()
{
printf("this routine in lib\n");
}
2。命令
cl /c libdemo.c main.c
link libdemo.obj /dll '生成libdemo.lib
link main.obj libdemo.lib
有一些代碼,我們編程時(shí)經(jīng)常用到,或者我們對某些部分很熟悉,讓簡余漏并寫出了一些可用的接口。這時(shí),我們會考慮把這些c文件做成一個lib庫,以方便自己使用,或這給別人調(diào)用。
我這里介紹下在vc++6.0下如何來制作靜態(tài)庫:
第一步:創(chuàng)建一個工程,選擇Win32Static Library,輸入工程名。這時(shí)就創(chuàng)建好了。
第二步:工程創(chuàng)建好了,再點(diǎn)擊新建,這時(shí)選擇文件,選擇c++ source file選項(xiàng),創(chuàng)建一個.c
文件。
在這個文件中,你可以寫入你要做成庫的c函數(shù)。當(dāng)然,可以繼續(xù)創(chuàng)建其他c文件,然后將要供外部使用的接口單獨(dú)放到頭文件中,一般而言,一個c文件對應(yīng)一個頭文件。
第三步:完成以上步驟后,我們就可以生成庫了。事實(shí)上,我們點(diǎn)擊編譯即可,這時(shí)就可以生成.lib文件了。
一般情況下,是坦毀褲可以正常生成lib文件的。有頭文件和lib文件就可以給別人用了。然后我們可以寫一個測試函數(shù)來試試可不可以使用。
要調(diào)用生成的lib中的函數(shù),就要引入頭函數(shù)。這時(shí),你把lib和頭文件放入當(dāng)前工程中,但build的時(shí)候卻顯示了連接錯誤。那是因?yàn)槟銢]有把lib文件包含進(jìn)來。加入下面這句話即可了:
#pragma comment(lib, "mylib.lib ")
Ok,自己的lib庫就這樣做成了。以后可以隨便調(diào)用了。
一、lib庫的創(chuàng)建;
建議使用VC來制作比較方便,以VC2005為例:
新建》項(xiàng)目》Win32控制臺應(yīng)用程序》靜態(tài)庫》完成。
然后在里面編寫一個函數(shù),編譯一下庫就作好了。
把對外使用的函數(shù)新建一個頭文件聲明;
二、lib庫頃粗的使用
新建一個程此乎并序,然后引用上面的頭文件,就可以使用庫里的函數(shù)。然后森跡把lib庫在工程配置里面加入:屬性》鏈接器》輸入》附加依賴項(xiàng)》填入你的lib庫,可以加路徑。然后編譯應(yīng)該就可以了。
祝 你 好 運(yùn)!