C语言从入门到精通-C静态库的生成及使用

本文详细介绍了C语言中静态库的概念,如何在CLion中生成和链接静态库,以及静态库的移植过程。通过实例展示了如何在Cygwin64环境下应用静态库并进行测试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

静态库

什么是静态库

C静态库(Static Library)是C语言编程中常用的一种库文件形式。与动态库(Dynamic Library)相比,静态库在程序编译时会被完全嵌入到最终的可执行文件中,因此生成的可执行文件不依赖于外部的库文件。这意味着,无论目标系统上是否安装了相应的库,只要编译时包含了静态库,程序就可以正常运行。C静态库(Static Library)是C语言编程中常用的一种库文件形式。与动态库(Dynamic Library)相比,静态库在程序编译时会被完全嵌入到最终的可执行文件中,因此生成的可执行文件不依赖于外部的库文件。这意味着,无论目标系统上是否安装了相应的库,只要编译时包含了静态库,程序就可以正常运行。

CLion生成静态库

使用CLion生成静态库文件。

创建C语言库项目

image-20240429153738838

修改库文件.h名称

image-20240429155312623

编写库中的头文件

#ifndef FFYC_FFYC_H
#define FFYC_FFYC_H


#include <stdio.h>
#include <stdlib.h>
#include<sys/socket.h>
#include <arpa/inet.h>
#include <string.h>
#include <unistd.h>
#include <errno.h>


/**
 * 启动服务器
 * @return
 */
int start_server(int port);
/**
 * 连接服务器
 * @param server_socket
 * @return 返回连接状态
 */
int conn_server(int server_socket);
/**
 * 获取前端返回的数据
 * @param conn_socket 连接状态
 * @param req_buffer 数组存储请求的字符串
 */
void receive_data(int conn_socket, char* req_buffer,int req_buffer_len);
/**
 * 打印字符串数组信息
 * @param array 字符数组
 * @param len 字符数组长度
 */
void print_array(char *array, int len);
/**
 * 获取请求数据
 * @param array
 * @param len
 * @return
 */
char* get_req_data(char *array, int len);
/**
 * 将十六进制转换为十进制
 * @param c 要转换的字符
 * @return 返回十进制数
 */
int hex2dec(char c);
/**
 * 将输入的字符串中的中文翻译为中文正确格式
 * @param url
 */
void url_decode(char url[]);
/**
 * 发送数据到web前端
 * @param conn_socket 连接的socket
 * @param data  传输的数据
 */
void send_data(int conn_socket,char* data);



#endif //FFYC_FFYC_H

编写.c文件

#include "ffyc.h"

char resp_header[] = "HTTP/1.0 200 OK\r\n"<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值