我安装了 MySql 连接器,我想在我的 C++ 应用程序中使用它来连接到数据库,尽管我无法链接该库。我尝试了其他堆栈问题的方法,所以我这样做了:
set(FULL_PATH_TO_MYSQL_CONNECTOR_CPP_DIR "C:/MySQL/MySQL Connector C++ 8.4")
include_directories(${FULL_PATH_TO_MYSQL_CONNECTOR_CPP_DIR}/include)
include_directories(${FULL_PATH_TO_MYSQL_CONNECTOR_CPP_DIR}/include/jdbc)
include_directories(${FULL_PATH_TO_MYSQL_CONNECTOR_CPP_DIR}/include/jdbc/cppconn)
include_directories(${FULL_PATH_TO_MYSQL_CONNECTOR_CPP_DIR}/include/mysqlx)
include_directories(${FULL_PATH_TO_MYSQL_CONNECTOR_CPP_DIR}/include/mysqlx/common)
include_directories(${FULL_PATH_TO_MYSQL_CONNECTOR_CPP_DIR}/include/mysqlx/devapi)
include_directories(${FULL_PATH_TO_MYSQL_CONNECTOR_CPP_DIR}/include/mysql)
link_directories(${FULL_PATH_TO_MYSQL_CONNECTOR_CPP_DIR}/lib64)
target_link_libraries(2024__TAB_DSA__8_BRODZIAK
PRIVATE cpr::cpr
mysqlcppcon
)
target_compile_features(2024__TAB_DSA__8_BRODZIAK PRIVATE cxx_range_for)
在我的 CMakeLists.txt 中,但它会产生错误
C:\Program Files\JetBrains\CLion 2023.3.4\bin\mingw\bin/ld.exe: cannot find -lmysqlcppcon: No such file or directory
我已为已安装的连接器定义了路径并包含头文件,但我仍然无法使用这些文件本身,我不确定为什么。
链接器似乎找不到名为
mysqlcppcon
的 MySQL Connector/C++ 库文件。这可能是由于以下几个原因造成的:
target_link_libraries
命令中的库名称可能不正确。link_directories
中指定的路径可能不包含实际的库文件或不正确。lib64
。您可以采取以下措施来解决该问题:
验证库名称是否正确。通常,库文件名为
mysqlcppconn
。如果是这种情况,请更新您的 target_link_libraries
命令以使用正确的名称。
检查库文件(用于静态链接的
.lib
或用于 Windows 上动态链接的 .dll
和 .dll.a
)是否实际存在于 ${FULL_PATH_TO_MYSQL_CONNECTOR_CPP_DIR}/lib64
中。
如果您的系统是 32 位或使用不同的目录结构,请确保您在正确的目录中查找库。
您可能需要在
target_link_libraries
中指定不带扩展名的库文件的确切名称,例如,如果有一个名为 libmysqlcppconn.lib
的文件,只需提及 mysqlcppconn
。
以下是如何调整 CMake 配置的示例:
set(FULL_PATH_TO_MYSQL_CONNECTOR_CPP_DIR "C:/MySQL/MySQL Connector C++ 8.4")
include_directories(${FULL_PATH_TO_MYSQL_CONNECTOR_CPP_DIR}/include)
link_directories(${FULL_PATH_TO_MYSQL_CONNECTOR_CPP_DIR}/lib64)
target_link_libraries(2024__TAB_DSA__8_BRODZIAK
PRIVATE cpr::cpr
mysqlcppconn # Assuming 'mysqlcppconn' is the correct name of your library
)
target_compile_features(2024__TAB_DSA__8_BRODZIAK PRIVATE cxx_range_for)
如果这些步骤都不能解决您的问题,请考虑仔细检查您是否已正确安装 MySQL Connector/C++,以及所有必要的环境变量是否已正确设置。此外,请确保您使用的 MySQL Connector/C++ 版本与编译器和构建工具兼容。