当前位置:首页 » 编程软件 » 编译程序成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这个静态库文件来生成可执行文件。

热点内容
hp存储扩容 发布:2024-11-17 23:29:16 浏览:569
在ftp中put表示什么 发布:2024-11-17 23:29:12 浏览:383
mvc多文件上传 发布:2024-11-17 23:13:56 浏览:155
玩游戏硬盘缓存32m 发布:2024-11-17 23:03:42 浏览:525
蓝光存储系统 发布:2024-11-17 23:03:41 浏览:436
地平线4提示配置低于最低怎么办 发布:2024-11-17 22:54:38 浏览:610
注册银行卡账户密码填什么 发布:2024-11-17 22:54:35 浏览:537
java压缩上传图片 发布:2024-11-17 22:26:59 浏览:627
plc编程课件 发布:2024-11-17 22:18:23 浏览:469
我的世界服务器信号一直在检测 发布:2024-11-17 22:09:52 浏览:547