我用的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