當前位置:首頁 » 編程軟體 » 編譯程序成lib

編譯程序成lib

發布時間: 2023-11-03 10:15:31

① C語言如何生成庫文件

有一些代碼,我們編程時經常用到,或者我們對某些部分很熟悉,並寫出了一些可用的介面。這時,我們會考慮把這些c文件做成一個lib庫,以方便自己使用,或這給別人調用。
我這里介紹下在vc++6.0下如何來製作靜態庫:
第一步:創建一個工程,選擇Win32Static
Library,輸入工程名。這時就創建好了。
第二步:工程創建好了,再點擊新建,這時選擇文件,選擇c++
source
file選項,創建一個.c
文件。
在這個文件中,你可以寫入你要做成庫的c函數。當然,可以繼續創建其他c文件,然後將要供外部使用的介面單獨放到頭文件中,一般而言,一個c文件對應一個頭文件。
第三步:完成以上步驟後,我們就可以生成庫了。事實上,我們點擊編譯即可,這時就可以生成.lib文件了。
一般情況下,是可以正常生成lib文件的。有頭文件和lib文件就可以給別人用了。然後我們可以寫一個測試函數來試試可不可以使用。
要調用生成的lib中的函數,就要引入頭函數。這時,你把lib和頭文件放入當前工程中,但build的時候卻顯示了連接錯誤。那是因為你沒有把lib文件包含進來。加入下面這句話即可了:
#pragma
comment(lib,
"mylib.lib
")
Ok,自己的lib庫就這樣做成了。以後可以隨便調用了

② 怎樣編譯生成lib文件啊

需要先製作DLL文件,然後生成對應DLL文件的LIB文件,並編寫由DLL文件中的公開函數的聲明所組成的頭文件。

請參閱有關DLL文件製作的教程

③ AS400中怎麼把RPG程序編譯到指定的LIB裡面去。

創建自己的命令

用戶在日常管理中,經常會重復使用同一命令,但命令又很長,用戶可以創建用CRTDUPOBJ; CHGCMDDFT創建自己的命令簡化操作。

例如:命令WRKUSRJOB USER(*ALL) STATUS(*ACTIVE) JOBTYPE(*INTERACT) ASTLVL(*BASIC)

可以按以下步驟進行操作:

A. 輸入命令CRTDUPOBJ(Create Duplicate Object)並按F4鍵。

Create Duplicate Object (CRTDUPOBJ)

Type choices, press Enter.

From object . . . . . . . . . . > WRKUSRJOB Name, generic*, *ALL

From library . . . . . . . . . . > *LIBL Name, *LIBL, *CURLIB

Object type . . . . . . . . . . > *CMD *ALL, *ALRTBL, *AUTL...

+ for more values

To library . . . . . . . . . . . > YOURLIB Name, *FROMLIB, *SAME...

New object . . . . . . . . . . . > USERJOB Name, *OBJ, *SAME

From ASP device . . . . . . . . * Name, *, *CURASPGRP, *SYSBAS

To ASP device . . . . . . . . . *ASPDEV Name, *ASPDEV, *...

Bottom

F3=Exit F4=Prompt F5=Refresh F12=Cancel F13=How to use this display

F24=More keys

在用戶所在的庫(yourlib)中創建WRKUSRJOB命令的副本userjob

B. .在AS/400命令行輸入CHGCMDDFT(Change Command Default)命令,

Change Command Default (CHGCMDDFT)

Type choices, press Enter.

Command . . . . . . . . . . . . > USERJOB Name

Library . . . . . . . . . . . > yourlib Name, *LIBL, *CURLIB

New default parameter string . . > 'status(*active) jobtype(*interact)'

Bottom

F3=Exit F4=Prompt F5=Refresh F12=Cancel F13=How to use this display

F24=More keys

這樣一條新的命令被定義成功。

可以在AS/400命令行輸入yourlib/userjob 來執行你需要的功能。

④ 有一個庫的源代碼,怎麼用mingw編譯產生成lib

mingw編譯出來的靜態庫後綴名為.a,編譯出來的動態庫的導入庫後綴名為.dll.a,而在windows下後綴名為.lib的庫可能是靜態庫也可能是動態庫的導入庫。

mingw編譯出來的動態庫的導入庫可以直接在vc中直接使用,例如

#pragma comment(lib, "libx264.dll.a")

這樣你就不需要生成一個.lib後綴的動態庫的導入庫了,網上也有如何從.dll生成.lib的方法。

如果鏈接了動態庫的導入庫libpthread.dll.a,你發布的應用程序就要帶上pthread的dll。
使用靜態庫的好處是發布的應用程序組件模塊里不需要帶上相關的dll,如果要使用mingw編譯出來的靜態庫,可以如下:

#pragma comment(lib, "libx264.a")

但是僅僅鏈接這么一個靜態庫是不夠的,你還需要鏈接

libgcc.a

libmingwex.a

⑤ lib文件是什麼是不是編譯自動生成我不加lib文件運行不了

lib文件是靜態庫,這種文件中有頭文件中聲明的函數的實現代碼,一般用在靜態連編上,編譯鏈接時,將lib文件與其他模塊編譯生成的目標代碼鏈接,從而形成能夠運行的可執行文件。
#pragma comment(lib, "pcc32_vc6.lib")就是連入一個庫文件,表示鏈接pcc32_vc6.lib這個靜態庫文件來生成可執行文件。

熱點內容
php配置mail 發布:2024-05-19 11:52:37 瀏覽:906
歐洲國家的雲伺服器 發布:2024-05-19 11:43:30 瀏覽:44
左游手柄助手2腳本 發布:2024-05-19 11:40:28 瀏覽:1002
挖礦需要什麼配置 發布:2024-05-19 11:38:02 瀏覽:895
eclipse導出ant腳本 發布:2024-05-19 11:20:28 瀏覽:99
如何改變vivo手機賬戶密碼 發布:2024-05-19 10:56:07 瀏覽:377
sql的length函數 發布:2024-05-19 10:55:15 瀏覽:546
資料庫管理系統設計報告 發布:2024-05-19 10:49:50 瀏覽:685
linux怎麼將驅動編譯進內核 發布:2024-05-19 10:23:47 瀏覽:768
c語言讀程序題 發布:2024-05-19 10:13:52 瀏覽:675