# Instrument_control **Repository Path**: qdu-soft/instrument_control ## Basic Information - **Project Name**: Instrument_control - **Description**: 他应该是一个开源, ,,,,,,, 或者叫一座屎山 - **Primary Language**: C++ - **License**: 0BSD - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-10-19 - **Last Updated**: 2023-08-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ### instrument_control #### 开发环境&依赖 * [QT 5.12.2](https://download.qt.io/archive/) 很适合连接 mysql , 自带驱动 (如果您仍然出现 not loaded 下面我们会分享我们的解决方案) * [ni-visa](/blog/res/files/ni-visa_20.0_online_repack3.exe) 新机器必须安装 VISA * 64位 * MySQL版本如下 ```sql status # mysql 版本 # mysql Ver 8.0.24 for Win64 on x86_64 (MySQL Community Server - GPL) ``` #### Git下载第三方库 ```bash # 新库更新 submodule 更新 初始化 递归 git submodule update --init --recursive ``` #### QT与MySQL的爱与仇 网上大部分希望您编译mysql的驱动, 而在[一篇知乎](https://zhuanlan.zhihu.com/p/100669223)中详细的说明了如何去验证您的驱动与 MySQL 可不可以适配(注意**g++**, 与**qmake**的环境变量), 如果您发现是 yes 支持的话, 就说明驱动没有问题 . ```bash cd %QTDIR%\qtbase\src\plugins\sqldrivers qmake -- MYSQL_INCDIR="%Mysql%/MySQL Server 8.0/include" MYSQL_LIBDIR="%Mysql%/MySQL Server 8.0/lib" # 执行完qmake这一句就可以验证驱动是否正常 mingw32-make mingw32-make install # %QTDIR% 是指你qt的根文件夹 # %Mysql%是你mysql的根文件夹。 ``` ##### 可用但是仍然not loaded 在配置时, 我们发现, 将MySQL8.0的 bin 目录添加到环境变量竟然不会报错**可以正常连接**, 又经过层层筛选, 我们发现除了 **libmysql.dll** 在链接库中是一定的, bin目录下还有几个特殊文件 **(为确保万无一失, 您可以将您 mysql/bin 目录下所有的dll放到exe路径下, 跟libmysql.dll一样)** : * libcrypto-1_1-x64.dll * libmysql.dll * libssl-1_1-x64.dll 上述文件一并打包进 exe 目录 **(我是64位, 文件可能差异)** 即可 . ##### 注意 ( 如果) ```bash QSqlDatabase: QMYSQL driver not loaded QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7 ``` ~~连接MySQL动态库问题, 有点玄学, 应该是连接问题 ,~~ (已解决) 将二者放入编译器sqldrivers路径下即可, 例如我的路径~~*D:\\Qt\\Qt5.14.2\\5.14.2\\mingw73_64\\plugins\\sqldrivers*~~ (5.14.2 比较不稳定) ![这两个便是此版本驱动](D:\define9\Notes\QT4.8.7配置.assets\QT_mysql.png) [转载 : 关于QT MySQL参考这一篇](https://blog.csdn.net/treblez/article/details/106657844?spm=1001.2101.3001.6650.15&utm_medium=distribute.pc_relevant.none-task-blog-2~default~BlogCommendFromBaidu~default-15.no_search_link&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2~default~BlogCommendFromBaidu~default-15.no_search_link) ##### 编译MySQL驱动 ~~两个文件 : 上述版本的驱动已在此编译好~~ ~~由于 MySQL 动态库已在项目中链接完成, 所以我们只需要给 QT 加个MySQL驱动即可~~ ~~驱动文件下载(对应 debug 和 release ) :~~ ~~[qsqlmysql.dll](/blog/res/files/QT_MySQL/qsqlmysql.dll)~~ ~~[qsqlmysql.dll.debug](http://syhu.com.cn/blog/res/files/QT_MySQL/qsqlmysql.dll.debug)~~ #### QT打包程序以及常见问题 ```bash Setting up environment for Qt usage... D:\Qt\Qt5.12.2\5.12.2\mingw73_64> windeployqt %your_dir% ``` 有可能会出现不可执行问题, **注意**, 打包软件不要cmd打开MinGW的bin路径,**而应该使用安装QT时 在开始菜单添加的那个 Qt 5.12.2 (MinGW 7.3.0 64-bit) **, 自己的外部依赖需要自己添加, 比如MySQL的 **libmysql.dll(动态库的话)**