Mac下makefile使用openssl库

程序报错

./polipo.h:208:10: fatal error: 'openssl/ssl.h' file not found

安装和查找openssl开发库

brew install

brew --prefix openssl

cd /opt/homebrew/opt/openssl@3

cd lib

cd pkgconfig

通过makefile配置include文件和lib文件

pkg-config方式

lib文件查找:

LIBOPENSSL_LIBS = $(shell pkg-config --libs openssl)

LDLIBS += $(LIBOPENSSL_LIBS) -lstdc++

头文件查找:

LIBOPENSSL_INC = $(shell pkg-config --cflags openssl)

CFLAGS = $(LIBOPENSSL_INC)

makefile编译模块例子

olipo(EXE): (OBJS)

(CC) (CFLAGS) (LDFLAGS) -o polipo(EXE) (OBJS) (MD5LIBS) $(LDLIBS)

编译选项解释

GCC编译选项CFLAGS参数

选项 说明

-c 用于把源码文件编译成 .o 对象文件,不进行链接过程

-o 用于连接生成可执行文件,在其后可以指定输出文件的名称

-g 用于在生成的目标可执行文件中,添加调试信息,可以使用GDB进行调试

-Idir 用于把新目录添加到include路径上,可以使用相对和绝对路径,"-I."、"-I./include"、"-I/opt/homebrew/Cellar/openssl@3/3.1.1_1/linclude"

-Wall 生成常见的所有告警信息,且停止编译,具体是哪些告警信息,请参见GCC手册,一般用这个足矣!

-w 关闭所有告警信息

-O 表示编译优化选项,其后可跟优化等级0\1\2\3,默认是0,不优化

-fPIC 用于生成位置无关的代码

-v (在标准错误)显示执行编译阶段的命令,同时显示编译器驱动程序,预处理器,编译器的版本号

GCC链接选项LDFLAGS参数

选项 说明

-llibrary 链接时在标准搜索目录中寻找库文件 -lssl

-Ldir 用于把新目录添加到库搜索路径上,可以使用相对和绝对路径,"-L."、"-L./include"、"-L/opt/homebrew/Cellar/openssl@3/3.1.1_1"

-Wl,option 把选项 option 传递给连接器,如果 option 中含有逗号,就在逗号处分割成多个选项

-static 使用静态库链接生成目标文件,避免使用共享库,生成目标文件会比使用动态链接库大

相关推荐
茶杯梦轩5 小时前
从零起步学习RabbitMQ || 第二章:RabbitMQ 深入理解概念 Producer、Consumer、Exchange、Queue 与企业实战案例
服务器·后端·消息队列
甲鱼9291 天前
MySQL 实战手记:日志管理与主从复制搭建全指南
运维
YuMiao2 天前
gstatic连接问题导致Google Gemini / Studio页面乱码或图标缺失问题
服务器·网络协议
碳基沙盒3 天前
OpenClaw 多 Agent 配置实战指南
运维
Sinclair5 天前
简单几步,安卓手机秒变服务器,安装 CMS 程序
android·服务器
Rockbean6 天前
用40行代码搭建自己的无服务器OCR
服务器·python·deepseek
蝎子莱莱爱打怪6 天前
Centos7中一键安装K8s集群以及Rancher安装记录
运维·后端·kubernetes
茶杯梦轩6 天前
CompletableFuture 在 项目实战 中 创建异步任务 的核心优势及使用场景
服务器·后端·面试
海天鹰7 天前
【免费】PHP主机=域名+解析+主机
服务器
DianSan_ERP7 天前
电商API接口全链路监控:构建坚不可摧的线上运维防线
大数据·运维·网络·人工智能·git·servlet