静态库
什么是静态库
C静态库(Static Library)是C语言编程中常用的一种库文件形式。与动态库(Dynamic Library)相比,静态库在程序编译时会被完全嵌入到最终的可执行文件中,因此生成的可执行文件不依赖于外部的库文件。这意味着,无论目标系统上是否安装了相应的库,只要编译时包含了静态库,程序就可以正常运行。C静态库(Static Library)是C语言编程中常用的一种库文件形式。与动态库(Dynamic Library)相比,静态库在程序编译时会被完全嵌入到最终的可执行文件中,因此生成的可执行文件不依赖于外部的库文件。这意味着,无论目标系统上是否安装了相应的库,只要编译时包含了静态库,程序就可以正常运行。
CLion生成静态库
使用CLion生成静态库文件。
创建C语言库项目
修改库文件.h名称
编写库中的头文件 - #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"
- "Server: my-AI-X v1.0\r\n"
复制代码 |