扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
1、不同的系统开发函数库的具体步骤是不一样的,这主要决定于编译、链接环境。
网站建设哪家好,找创新互联建站!专注于网页设计、网站建设、微信开发、微信小程序、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了天宁免费建站欢迎大家使用!
2、不同的库开发方式也不一样,现在主流的库开发有两种,一种是静态库,一种是动态库,两者的本质区别是库代码是否和程序融合在一起,如果组装在一起就是静态库,如果不组装在一起,即为动态库,现在操作系统提供的多数是动态库,如Linux平台的.so文件,windows平台的DLL文件。
3、以Windows平台为例,用户可以通过Vc/vs等IDE集成开发环境,生成DLL工程,然后编写def文件进行导出。
简单的一个例子,但是基本的程序编译的思想都在里面了,具体的需要你自己体会和查资料
跟着下面的步骤走
------------------------
第一步:我的电脑-属性-高级-环境变量
添加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
---------------------------------------------------
呵呵 加点东西,参看4楼的建议,在做个dll,COM组件就不做了,有点复杂了
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
哈哈,选我吧!库分静态库和动态链接库,静态库以lib结尾,被编译器里的链接器识别。windows下动态库以dll结尾,被操作系统加载以模块方式映射到进程地址空间。一般初学者先学会创建的是静态库。静态库是一个无需重定位的函数集。怎么做到无需重定位呢?这是编译器做的编译工作,例如它指定开头的位置作为基址,剩下的代码用到的都是相对偏移。这样,这段二进制代码可以被放在内存中的任何位置执行,被写入了lib文件里。在lib文件里,包含了函数名与函数地址组成的结构体,通过它编译器可以找到lib文件里需要的二进制代码并以静态联编的方式写入我们调用它的exe文件里。这种代码是被塞进exe文件里而无需修改,并在程序执行时被用到。为了让库被别人调用,我们可以写一个头文件.h,包含函数原型及声明。
你的函数库是否是指将自己写的那些函数封装到一个头文件里面,在用的时候调用啊?
如果这样,就要建立一个.h文件和一个.c文件,并且,.c文件和.h文件的名字要一样,在你的这个.c文件里面添加你的那些函数,然后在.h文件里面用extern将这个函数声明一下,这样当你包含这个头文件的时候,你的其他的文件就可以调用这个文件的函数了,楼上所说的开放的接口也就是你要调用的函数的接口,放在头文件里面关于头文件的制作各式,网上貌似可以搜到……
C语言标准函数库不是跟编程软件相关的。C语言的标准变化了好几次,现在说的标准C语言指的是99年制定的C99标准。其中定义的函数库就是C语言标准函数库。具体有哪些你可以查询《C语言参考手册(C:A
Reference
Manual,Fifth
Edition》。
但事实上,每个C/C++编译器都带有自身的函数库,一般都兼容C标准函数库,但也有个别的有些细节上的出入。所以,一般你只要考察你所用编译器的函数库就行了(通常都可以从帮助中得到)。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流