问题背景
腾讯云服务器,linux centOS7 内核 ,mysql 版本5.5 为宝塔腾讯云版自动安装
C++用cmake编译时找不到mysql.h
解决
1.首先尝试yum安装mysql-devel包,但是yum让我直接下载了mariadb相关的包,
下载时它,与原有包冲突bt-mysql55-5.5.62-1.el7.x86_64,
但是删除原有包后mysql启动有问题
所以形成问题闭环
2.意识到应该是有库但是编译连接位置不正确,linux下直接搜索mysql.h,
find / -name mysql.h
结果:
/www/server/mysql/include/mysql.h
静态库 -I(一般是include),动态库 -L(一般是lib)
在cmake中链接该路径即可
cmake如下
server: main.cpp ./timer/lst_timer.cpp ./http/http_conn.cpp ./log/log.cpp ./CGImysql/sql_connection_pool.cpp webserver.cpp config.cpp
$(CXX) -o server $^ $(CXXFLAGS) -lpthread -L /www/server/mysql/lib/ -lmysqlclient -I /www/server/mysql/include/