启用SSL时CrowCPP编译失败,寻求解决方案
启用SSL时CrowCPP编译失败,寻求解决方案
大家好!我最近在给我的CrowCPP项目加SSL支持,结果一启用SSL编译直接就失败了,但不开启SSL的话项目完全能正常编译运行。我是LMDE系统用户,已经确认依赖库都装了,但试了好几种方法都没解决,想请各位大佬帮忙排查下问题!
问题背景
我在编译时加上了CROW_ENABLE_SSL宏来开启SSL支持,结果立刻报错,把这个宏去掉就一切正常。
错误情况
编译时抛出了一堆SSL相关的未定义引用错误,都是和OpenSSL核心函数(比如SSL_CTX_new、SSL_new这类)有关的链接错误,看起来像是编译时没正确链接到OpenSSL库。
项目相关信息
项目文件结构
├── a.out ├── cert.crt ├── cert.key ├── include ├── main.cpp ├── static ├── templates └── Makefile
我的Makefile
@all: @g++ -o server.bin *.cpp -DCROW_ENABLE_SSL
核心代码说明
main.cpp里主要是初始化Crow的SSL服务器,指定了证书文件cert.crt和密钥文件cert.key的路径,代码逻辑在不启用SSL时是完全正常的。
我已经尝试过的解决方法
- 重新安装了OpenSSL相关依赖库(本来就已经安装了,我用的是LMDE系统)
- 调整了代码中Crow方法链的调用顺序
- 按照Crow官方Wiki的建议,调整了Makefile中
-DCROW_ENABLE_SSL编译宏的位置,但还是没用
有没有大佬遇到过类似的问题?或者能帮我看看Makefile哪里写错了吗?万分感谢!
备注:内容来源于stack exchange,提问作者S0nhe
相关产品推荐
相关产品推荐

