从一个简单的加密项目看看Makefile(一)
前言
从本文开始,从一个简单的加密项目来完整实现完整的Makefile,静态库和动态库教程。本文环境为Debian 11 && gcc (Debian 10.2.1-6) 10.2.1 20210110
目录结构
simple_encrypt # 项目根目录
|
|----- include # 头文件目录
| |
| |----- checksum.h
| |----- encrypt.h
|
|----- src # 源码目录
| |
| |----- checksum.c
| |----- encrypt.c
| |----- test_code.c
|
|----- Makefile源码
checksum.h
int checksum(char *message);checksum.c
#include "checksum.h"
int checksum(char *message)
{
int c = 0;
while (*message)
{
c += c ^ (int)(*message);
message++;
}
return c;
}encrypt.h
void encrypt(char *message);encrypt.c
#include "encrypt.h"
void encrypt(char *message)
{
while (*message)
{
*message = *message ^ 31;
message++;
}
}test_code.c
#include <stdio.h>
#include "encrypt.h"
#include "checksum.h"
int main(void)
{
char s[] = "Speak friend and enter";
encrypt(s);
printf("Encrypted to '%s'\n",s);
printf("Checksum is %i\n",checksum(s));
encrypt(s);
printf("decrypted back to '%s'\n",s);
printf("Checksum is %i\n",checksum(s));
return 0;
}共享头文件
在多个C项目中共享头文件的方法有很多:
把头文件保存在标准目录中
只要把头文件复制到/usr/local/include/这样的标准目录中,就可以在源代码中用尖括号包含它们
#include <encrypt.h>在include语句中使用完整路径名
encrypt.c中可以这样写:
#include "../include/encrypt.h"告诉编译器去哪里找头文件
使用gcc的-I选项:
gcc -I../include/ checksum.c encrypt.c test_code.c -o test_code参考资料:《嗨翻C语言》
评论已关闭