0

我从 github 呼吸 https://github.com/mysql/mysql-connector-cpp获得了最新版本的 mysql connector/c++ 源代码。为了安装它,我遵循了文档: https ://dev.mysql.com/doc/connector-cpp/8.0/en/connector-cpp-installation-source.html 。

我使用 CMake GUI 版本进行了配置并生成了 mysql 连接器/c++。3.22 为了构建和安装连接器/c++,我使用了 Visual Studio 2022 和 Visual Studio 17 2022 编译器。在构建期间,我在两个子项目中(在解决方案树中)遇到了两个问题 - 即:连接器和连接器-jdbc:

严重性代码描述项目文件行抑制状态错误MSB3073命令“setlocal”C:\Program Files\CMake\bin\cmake.exe“-DTARGET=P:/mysql-connector-cpp/_build/jdbc/Release/mysqlcppconn-static .lib -DTYPE=STATIC -DBUILD_LOG=P:/mysql-connector-cpp/_build/jdbc/Release/connector-jdbc.log.STATIC -DMSBUILD=ON -DMSVC=19.30.30709.0 -DINFO=P:/mysql-connector -cpp/_build/jdbc/INFO_BIN -DINFO_PREFIX=jdbc- -PP:/mysql-connector-cpp/_build/libutils/merge_archives.cmake if %errorlevel% neq 0 goto :cmEnd :cmEnd endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone :cmErrorLevel exit /b %1 :cmDone if %errorlevel% neq 0 goto :VCEnd :VCEnd" exited with code 1. connector-jdbc C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\ VC\v170\Microsoft.CppCommon.targets 156

我通过转到 Post-Build-Events 旁边的连接器和连接器-jdbc 子项目的属性,最后通过删除“命令行”字段中的内容来解决这个问题。

我构建并安装了连接器/c++,您可以在 github 上访问它:https ://github.com/SPiernikowski/mysqlConnector

使用 cmake gui 配置时使用的所有变量都在 CMakeCache.txt 文件中。

根据段落中的文档:“从源代码安装连接器/C++”(https://dev.mysql.com/doc/connector-cpp/8.0/en/connector-cpp-installation-source-cpp.html)“如果构建成功,它会在构建目录中创建连接器库。(对于 Windows,在与 --config 选项指定的 build_type 值相同名称的子目录中查找库。)“

我想在 Windows 上分别获取 jdbc 和 xapi 的静态库,所以:

accor.to doc:“如果您构建旧版静态库,它们具有以下名称:”

  • mysqlcppconn-static.lib (Windows) - 这是用于 jdbc

  • mysqlcppconn8-static.lib (Windows) - 这是用于 xapi

当解决方案已经构建时,以下关注:

我可以首先在 /Release/mysqlcppconn8-static.lib 中为 xapi 找到这两个文件(参见 github 上的呼吸链接是第三个),在 /jdbc/Release/mysqlcppconn-static.lib 中找到第二个用于 jdbc 的文件(参见在 github 上的呼吸链接是第三个)

问题是每个 libs 文件的体积只有 2kB。肯定出了问题,但我找不到原因。

我打开了 mysqlcppconn-static.lib 文件:在下面看到它的一部分: /DEFAULTLIB:"MSVCRT" /DEFAULTLIB:"OLDNAMES" Ś NP:\mysql-connector-cpp_build\jdbc\connector-jdbc.dir\Release\空.obj:

尽管如此,我可以找到每个子项目的库:

/xapi/Release/xapi.lib - 卷 6097kB

/jdbc/driver/Release/jdbc.lib - 卷 4413kB

/devapi/Release/devapi.lib - 卷 6073 ... 等等

已安装解决方案时的以下注意事项:

我可以在 /_install/lib64/vs14 文件夹中找到两个库:mysqlcppconn8-static.lib 和 mysqlcppconn-static.lib 但它们每个只有 2KB 卷(请参阅 _install 文件夹中 git 的 repo)

也许我在 CMake 中错误地配置了一些东西???

我补充说 mysqlcppconn-static.lib 卷应该是 55628kB

也许这个问题是微不足道的,但我看不到它。如果您发现某些事情做错了,请与我分享。

4

0 回答 0