2021-09-07

作业: 将判断是否为闰年函数 打印菱形的函数 编码实现 并制作成共享库 通过main.c使用该共享库

①mkdir zuoye(新建文件夹)

②cd zuoye

③vim year.c

C语言判断是否为闰年

#include<stdio.h>
void is_leap(int year)
{
    if(year%400==0)
       printf("%d 此年为闰年\n",year);
    else
    {
        if(year%4==0&&year%100!=0)
        printf("%d 此年为闰年\n",year);
    else
        printf("%d 此年为平年\n",year);
    }
}

:wq 保存并退出

④vim year.h

xxx.h文件的作用 xxx.h是xxx.c文件的对外发言人 (说明xxx.c有哪些函数,是什么类型的 。。。)

void is_leap(int year);

⑤ vim star.c

输出菱形

#include<stdio.h>
void star(int n) 
{ 
    int i,j; 
    for(i=1; i<=n; i++) 
    { 
        for(j=1; j<=n-i; j++) 
        { 
            printf(" "); 
        } 
        for(j=n-i+1; j<n+i; j++) 
        { 
            printf("*"); 
        } 
        printf("\n"); 
    } 
     
    for(i=n-1; i>=1; i--) 
    { 
        for(j=1; j<=(n-i); j++) 
        { 
            printf(" "); 
        } 
        for(j=n-i+1; j<n+i; j++) 
        { 
            printf("*"); 
        } 
        printf("\n"); 
    } 
}

⑥vim star.h

void star(int n);

⑦ gcc -c -fpic year.c -o year.o

     gcc -c -fpic star.c -o star.o

⑧ gcc -shared year.o star.o -o libzuoye.so

链接库命名规则 lib开头 .so结尾

⑨vim main.c

#include "year.h"
#include "star.h"
​
void main(){
        is_leap(2021);
        star(5);
}

⑩gcc main.c -l zuoye -L /root/zuoye

编译 main.c 使用动态链接库 双L原则

-l, 要使用哪个库文件 -L, 链接时 除了系统路径下去搜索指定的库文件 还可以去哪些目录找库文件

  1. 使用 ./a.out 运行程序

  2. ./a.out: error while loading shared libraries: libzuoye.so: cannot open shared object file: No such file or directory 有可能出现此报错

  3. vim /etc/ld.so.conf 进入文件 添加动态链接库文件 所在目录

  4. 输入 ldconfig 更新配置文件 此时可运

         

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值