/opt/rh/devtoolset-9/root/usr/libexec/gcc/x86_64-redhat-linux/9/ld: 找不到 -lz 找不到 -lssl 找不到 -lcrypto
我用的cmake命令是:
target_link_libraries(${MyProjectName} -L/usr/lib64/mysql -lmysqlclient -lpthread -lz -lm -lssl -lcrypto -ldl)
将 ${MyProjectName} 这个目标(可执行文件或库文件)链接到以下的库文件:
/usr/lib64/mysql/libmysqlclient.so
/usr/lib64/libpthread.so
/usr/lib64/libz.so
/usr/lib64/libm.so
/usr/lib64/libssl.so
/usr/lib64/libcrypto.so
/usr/lib64/libdl.so
这些库文件提供了一些函数或变量,例如:
libmysqlclient.so 提供了 MySQL 数据库的客户端接口1
libpthread.so 提供了 POSIX 线程的实现2
libz.so 提供了压缩和解压缩的功能3
libm.so 提供了数学函数,如 sin, cos, sqrt 等4
libssl.so 和 libcrypto.so 提供了 SSL/TLS 协议和加密算法的支持
libdl.so 提供了动态加载共享库的功能
这个命令是 CMake 的一种语法,用于指定链接给定目标和/或其依赖项时要使用的库或标志。链接库目标的使用要求会传播到目标和其依赖项的编译选项中。
发现其实这些文件是软连接
找到对应文件创建软连接就行
sudo ln -s libcrypto.so.10 libcrypto.so
纯属记录程序人生,如有差错,欢迎指正,轻喷
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通