使用mysqlcppconn8库构建C++应用时遇未识别编译错误求助
问题:基于MySQL xDevAPI的C++应用编译报错
环境信息
- 开发方式:通过VSCode Remote-SSH扩展连接AWS Ubuntu 20.04服务器进行源码开发
- 开发目标:使用MySQL xDevAPI的C++应用
- 已安装依赖:执行
sudo apt install libmysqlclient-dev libmysqlcppconn-dev安装开发库 - 编译器版本:
gcc (Ubuntu 7.5.0-6ubuntu2) 7.5.0、g++ (Ubuntu 7.5.0-6ubuntu2) 7.5.0
CMake配置代码
顶层CMakeLists.txt
set(MYSQL_CPPCONN_DIR "/usr/include/mysql-cppconn-8") find_library(MYSQL_CLIENT_LIB mysqlclient)# "/usr/lib/x86_64-linux-gnu") find_library(MYSQL_CPPCONN_LIB mysqlcppconn)# "/usr/lib/x86_64-linux-gnu") find_library(MYSQL_CPPCONN8_LIB mysqlcppconn8)# "/usr/lib/x86_64-linux-gnu")
子目录CMakeLists.txt
add_executable(${TARGET_NAME} main.cpp DBServer.cpp) set_target_properties(${TARGET_NAME} PROPERTIES CXX_STANDARD 17 CXX_STANDARD_REQUIRED ON CXX_EXTENSIONS OFF) target_include_directories(${TARGET_NAME} PUBLIC "./include" ${MYSQL_CPPCONN_DIR}) target_link_libraries(${TARGET_NAME} PRIVATE sys core ${MYSQL_CLIENT_LIB} ${MYSQL_CPPCONN_LIB} ${MYSQL_CPPCONN8_LIB})
问题现象与已尝试方案
- 现象:使用VSCode CMake Tools扩展编译时出现未识别错误
- 已尝试的无效方案:
- 从GitHub源码构建MySQLCppConn库
- 更换全新的EC2实例
- 移除代码中的C17嵌套命名空间
namespace A::B::C(曾怀疑该语法触发/std:clatest导致问题)
内容的提问来源于stack exchange,提问作者Sangam Limbu
相关产品推荐
相关产品推荐

