c语言动态载入库函数 c动态库导出函数
如何在我的C语言程序中插入库函数
int
罗源网站制作公司哪家好,找创新互联!从网页设计、网站建设、微信开发、APP开发、成都响应式网站建设公司等网站项目制作,到程序开发,运营维护。创新互联成立于2013年到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联。
add(int
x,int
y);
int
sub(int
x,int
y);
int
mul(int
x,int
y);
int
div(int
x,int
y);
#include
math.h
#include
stdio.h
void
main()
{
int
a,b,c,d,e,f,g,h,i;
printf("XXXXXXXXXXXXXXX计算器");
printf("\n");
for(c=1;c=30;c++)
printf("*");
printf("\n");
printf("请输入一个整数");
printf("\n");
scanf("%d",a);
printf("\n");
for(c=1;c=30;c++)
printf("-");
printf("\n");
printf("请选择您要做的运算:1.+,2.-,3.*,4./5.abs,6.sqrt");
printf("\n");
for(c=1;c=30;c++)
printf("*");
printf("\n");
scanf("%d",d);
printf("\n");
if(d==5)
{printf("%d",abs(a));goto
end;}(如果想做绝对值,就直接做abs函数(它是个库函数).做完后就goto"end"--也就是函数的最后.)
if(d==6)
{printf("%.2f",sqrt(a));goto
end;};}(如果想做开平方,就直接做sqrt函数(它是个库函数).做完后就goto"end"--也就是函数的最后.)
printf("请再次输入一个整数");
(如果是做双目的就开始输入第二个数b)
printf("\n");
scanf("%d",b);
printf("\n");
switch(d)
{
case
1:add(a,b);break;
case
2:sub(a,b);break;
case
3:mul(a,b);break;
case
4:div(a,b);break;
default:printf("date
input
error!\n");
}
end:
printf("\n");}
int
add(int
x,int
y)
{
int
m;
m=x+y;
printf("%d",m);
return
m;
}
int
sub(int
x,int
y)
{
int
m;
m=x-y;
printf("%d",m);
return
m;
}
int
mul(int
x,int
y)
{
int
m;
m=x*y;
printf("%d",m);
return
m;
}
int
div(int
x,int
y)
{
int
m;
m=x/y;
printf("%d",m);
return
m;
}
(你试试看吧!应该可以!呵呵)
C语言库函数
假定你是在linux下做这件事 (在windows下应该也是类似的)
假定你要产生的库名字为 libtest.a
1. 实现库函数于 test.c
#include stdio.h
int test()
{
printf("hello world!\n");
return 0;
}
test.h内容:
extern int test();
2. 编译test.c并产生库文件
gcc -c test.c
ar -r libtest.a test.o
3. 其他程序如何调用 libtest.a 里的 test()函数?
main.c
#include "test.h"
int main()
{
return test();
}
4. 编译main.c产生可执行文件
gcc -o main.out main.c -L/path/to/libtest -ltest
5. 运行 main.out
./main.out
PS, 头文件的用处无非就是提供函数原型声明,在我上面给的例子中,可以把 test.h 删除, 但是必须在 main.c 里自己加上 extern int test(); 来声明函数。
C语言编写的动态库中的函数,如何才能被C++调用?
有对应的静态库吗?
有的话,加入项目编译,然后把动态库放到运行的地方就可以了。
如果没有的话,就需要编写代码调用了。
这里有篇比较好的文章
新闻名称:c语言动态载入库函数 c动态库导出函数
网站URL:http://scyanting.com/article/dooocod.html