Windows10环境下Poco库的编译

2023-11-09 12:30
文章标签 编译 环境 windows10 poco

本文主要是介绍Windows10环境下Poco库的编译,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一般情况下,编译没有任何问题。当前开发软件系统,基本上都需要和数据库进行交互。如果电脑上已经安装并正常配置好数据库环境,那么在编译Poco库时会自动检测,然后生成相应的软件库。可是有的时候我们并没有那么幸运,我自己就遭遇过一次,故而总结并记录之。

现在,我需要编译Poco库时,同时也生成PocoDataMySQL库。首先,必须保证MySQL数据库安装正常,否则在编译时无法得到需要的结果。我的MySQL是mysql-8.0.32-winx64版本。

配置MySQL相关的环境变量,我们可以简单在Path变量下增加MySQL的bin目录。

这个时候,不出意外的话就可以正常编译。有时候,无论怎么修改CMake构建命令,也无法得到我们想要的结果。如果出现这个情况,我们就需要学会分析,查找相关资料。比如查看FindMySQL.cmake文件的内容,我发现find_path命令的参数出现mysql/mysql.h

当时也不太清楚是受它的影响,没太在意。等到后来使用带参数的CMake命令构建出DataMySQL项目时,发现它不能编译。在源码中出现错误,#include <mysql/mysql.h>,它是这样引用MySQL头文件的。

在这里思考了很久,最后终于有了一个想法,难道是MySQL的目录下没有相应的头文件吗?我去查看后,发现我这个版本的MySQL头文件目录结构DataMySQL项目头文件引用不一致。在我的MySQL头文件目录下没有mysql/mysql.h这种结构,我感觉非常纳闷。

我大胆的尝试把外层的mysql.h复制一份到mysql目录下,应该不会有太大的影响。

经过这个尝试,终于可以编译DataMySQL项目。只是在连接的时候出现一个小问题。

经过查看FindMySQL.cmake文件的内容,我发现find_library命令的参数是mysqlclient

所以在构建出来的DataMySQL项目中“附加依赖项”是mysqlclient.lib

这个问题可以很好解决。可以直接修改FindMySQL.cmake文件的内容,把mysqlclient名称修改为libmysql

另外,可以在使用CMake构建命令的时候,附上MYSQL_LIBRARY参数。

cmake .. -DMYSQL_LIBRARY=D:/mysql-8.0.32-winx64/lib/libmysql.lib

这样构建出来的DataMySQL项目就不用再去手动修改附加依赖项的库名称,可以正常编译连接。 

仔细回想一下当时不能构建DataMySQL项目的情景,根本原因就是FindMySQL.cmake文件中是通过find_path命令的参数mysql/mysql.h查找MySQL头文件路径的,如果此时的MySQL安装环境和它匹配,就能正常自动检测。回过头去重新尝试之前的构建过程,都没有再出现构建时不能生成DataMySQL的情景。

这篇关于Windows10环境下Poco库的编译的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/376101

相关文章

ESP32 esp-idf esp-adf环境安装及.a库创建与编译

简介 ESP32 功能丰富的 Wi-Fi & 蓝牙 MCU, 适用于多样的物联网应用。使用freertos操作系统。 ESP-IDF 官方物联网开发框架。 ESP-ADF 官方音频开发框架。 文档参照 https://espressif-docs.readthedocs-hosted.com/projects/esp-adf/zh-cn/latest/get-started/index

C++工程编译链接错误汇总VisualStudio

目录 一些小的知识点 make工具 可以使用windows下的事件查看器崩溃的地方 dumpbin工具查看dll是32位还是64位的 _MSC_VER .cc 和.cpp 【VC++目录中的包含目录】 vs 【C/C++常规中的附加包含目录】——头文件所在目录如何怎么添加,添加了以后搜索头文件就会到这些个路径下搜索了 include<> 和 include"" WinMain 和

UnrealScriptIDE调试环境部署

先安装vs2010   再安装VSIsoShell.exe, 下载地址 https://pan.baidu.com/s/10kPNUuDGTbWXbz7Nos-1WA       fd3t   最后安装unside,下载地址 https://archive.codeplex.com/?p=uside  安装中间有一步选择Binary文件夹要选对路径。   安装好以后,启动 UDKDe

C/C++的编译和链接过程

目录 从源文件生成可执行文件(书中第2章) 1.Preprocessing预处理——预处理器cpp 2.Compilation编译——编译器cll ps:vs中优化选项设置 3.Assembly汇编——汇编器as ps:vs中汇编输出文件设置 4.Linking链接——链接器ld 符号 模块,库 链接过程——链接器 链接过程 1.简单链接的例子 2.链接过程 3.地址和

Windwos +vs 2022 编译openssl 1.0.2 库

一 前言 先说 结论,编译64位报错,查了一圈没找到解决方案,最后换了32位的。 使用qt访问web接口,因为是https,没有openssl库会报错 QNetworkReply* reply = qobject_cast<QNetworkReply*>(sender());if (reply){if (reply->error() == QNetworkReply::NoError

API-环境对象

学习目标: 掌握环境对象 学习内容: 环境对象作用 环境对象: 指的是函数内部特殊的变量this,它代表着当前函数运行时所处的环境。 作用: 弄清楚this的指向,可以让我们代码更简洁。 函数的调用方式不同,this指代的对象也不同。【谁调用,this就是谁】是判断this指向的粗略规则。直接调用函数,其实相当于是window.函数,所以this指代window。

Pycharm配置conda环境(解决新版本无法识别可执行文件问题)

引言: 很多小伙伴在下载最新版本的pycharm或者更新到最新版本后为项目配置conda环境的时候,发现文件夹目录中无法显示可执行文件(一般为python.exe),以下就是本人遇到该问题后试验和解决该问题的一些方法和思路。 一般遇到该问题的人群有两种,一种是刚入门对pycharm进行conda环境配置的小白(例如我),不熟悉相关环境配置的操作和过程,还有一种是入坑pycharm有段时间的老手

青龙面板2.9之Cdle傻妞机器人编译教程

看到有的朋友对傻妞机器人感兴趣,这里写一下傻妞机器人的编译教程。 第一步,这里以linux amd64为例,去官网下载安装go语言安装包: 第二步,输入下方指令 cd /usr/local && wget https://golang.google.cn/dl/go1.16.7.linux-amd64.tar.gz -O go1.16.7.linux-amd64.tar.gz

Redis-在springboot环境下执行lua脚本

文章目录 1、什么lua2、创建SpringBoot工程3、引入相关依赖4、创建LUA脚本5、创建配置类6、创建启动类7、创建测试类 1、什么lua “Lua”的英文全称是“Lightweight Userdata Abstraction Layer”,意思是“轻量级用户数据抽象层”。 2、创建SpringBoot工程 3、引入相关依赖 <?xml version

cocospod 搭建环境和使用

iOS 最新版 CocoaPods 的安装流程 1.移除现有Ruby默认源 $gem sources --remove https://rubygems.org/ 2.使用新的源 $gem sources -a https://ruby.taobao.org/ 3.验证新源是否替换成功 $gem sources -l 4.安装CocoaPods (1)  $sudo gem