2)基于源码安装MySQL,从cmake开始,基本要被bison,curces,boost折腾一波
前段时间有同事联系我想看看可能推广我之前写的协程库 libcopp,虽然 libcopp 已经用到过好几个项目上,这几年也断断续续地写了一些实现细节的文章,但是也但确实需要系统、概览性地介绍下 libcopp ,所以就有了这篇文章。
本文介绍了如何安装boost库及其在Linux平台上的测试程序。首先,下载并编译安装boost库,然后编写测试程序,在程序中调用boost库的函数,对不同类型的对象进行操作。最后,使用Qt Creator集成开发环境进行测试程序的运行和调试。
测试发现编译MySQL5.7以及更高的版本时,都需要下载并引用或者直接安装boost库,否则在执行cmake命令时会报如下错误:
Boost库是一个可移植、提供源代码的C++库,作为标准库的后备,是C++标准化进程的开发引擎之一。 Boost库由C++标准委员会库工作组成员发起,其中有些内容有望成为下一代C++标准库内容。在C++社区中影响甚大,是不折不扣的“准”标准库。Boost由于其对跨平台的强调,对标准C++的强调,与编写平台无关。
来自:开源中国社区 链接:oschina.net/news/91666/boost-1-66-0-released 可移植的 C++ 标准库 Boost 发布了 1.66.0 版本,Boost 库是一个经过千锤百炼、可移植、提供源代码的 C++ 库,作为标准库的后备,是 C++ 标准化进程的发动机之一,由 C++ 标准委员会库工作组成员发起。 使用 VS 15.5 的开发者请注意,官方表示由于 Visual Studio 15.5 发布得太晚,所以 1.66.0 版本尚未在上面进行过测试。 1.66.0 新
由于CASCI/CASSCF计算量随活性空间呈指数增长,超过(16,16)的计算在高配机器上几乎不可能。近似求解大活性空间的方法通常有DMRG, selected CI等等。Block-1.5是做DMRG计算的经典程序,由Sandeep Sharma和Garnet Chan开发,虽然早在5年前就不更新了,但其计算速度仍高于很多同类程序。Block-1.5一般结合PySCF使用,可以进行DMRG-CASCI,DMRG-CASSCF和DMRG-SC-NEVPT2等计算。笔者之前在公众号上将该程序的安装拆分为几篇短文
NumPy提供了很多开箱即用的函数,用处非常大,所以写C++的时候,让人无比怀念,要是有一个替代版本,就太好了。最近搜索发现, NumCpp 这是我想要的,而且因为是 Header-only的库,因此使用时不需要编译,直接添加到头文件包含目录即可,使用很方便。不过NumCpp使用了boost库,需要进行一些下载和配置,这里记录一下。
平时写的一些示例代码 基本框架,封装,自定义控件等,以后都整理好上传到码云。算是自己的总结,也给需要的朋友提供一个参考。目前是这么多代码,有时间整理了继续传。
常规操作啦,前面两三篇都是环境搭建。 muduo网络库我就不多做介绍了,一个基于reactor反应堆模型的多线程C++网络库,陈硕大神的作品,不了解的小伙伴可以自行了解一下。
3 C++ Boost 字符,文本 目录: 字符与数值转换 Boost format函数 简单实用 Boost format 输出人员信息 小案例 Boost format 数字处理 Boost format 高级特性 Boost String 处理,大小写转换 Boost String 字符串查找 Boost String 字符串判断式 Boost String 字符串替换: Boost String 字符串分割 Boost String trim剔除两边字符 Boost String regex
OpenMolcas是收费软件Molcas的开源免费版本,前两年在GitLab上开源;QCMaquis前几个月在GitHub上开源,二者结合可以做DMRG、DMRG-NEVPT2和DMRG-PDFT等方法的计算。软件的详细介绍请阅读公众号前期教程《OpenMolcas 与 QCMaquis 的安装》,文中也讲了如何联网安装。QCMaquis的详细使用请阅读官方手册
术语“非阻塞”表示并发数据结构,该结构不使用传统的同步原语(例如警卫程序)来确保线程安全。 Maurice Herlihy和Nir Shavit(比较“多处理器编程的艺术”)区分了3种类型的非阻塞数据结构,每种结构具有不同的属性:
软链接是Linux下常用的一种共享文件方式、目录的方式,这种方式类似于Windows下的快捷方式。一般一个文件或者目录在不同的路径都需要的时候,可以通过创建软链接的方式来共享,这样系统下面只有一份源文件、目录。另外,巧用软链接,可以大大增加应用程序的可移植性。
GreatSQL 8.0.32-24已发布,配套的MySQL Shell也需要跟着升级一波,MySQL Shell版本从8.0.25升级到8.0.32后,也引入了一些不错的新特性。
可移植性是指程序在不同的系统上能够正确地运行,而不需要进行任何修改。C++是一种高度可移植的编程语言,因为它在不同的操作系统和硬件平台上都可以运行。但是,不同的操作系统和硬件平台具有不同的特性和限制,因此需要遵循一些规则来确保程序的可移植性。
以后可以使用那些一键的脚本,但是要明白一些底层的操作,以后才能更得心应手。一味的用那些面板、一键安装脚本,并不是一个很好的选择。
上一篇博客《conan入门(九):NDK交叉编译自己的conan包项目塈profile的定义》中我们以jsonlib为例说明了如何NDK交叉编译自己封装成conan的模块及定义profile简化编译的方式。
慢慢一点一点看看Boost,这段时间就Asio库吧。 据说这货和libevent的效率差不多,但是Boost的平台兼容性,你懂得。还有它帮忙干掉了很多线程安全和线程分发的事情。
由于我使用的 WSL ,cuda 一直没配置好,就不用GPU了,所以把 DWITH_CUDA_BACKEND设为NO。命令如下:
hash_map可以说是我一直欲求不得的宝了,第一次接触我就想拿下它,奈何,网上这种的:《手把手教你实现hash_map》,zzz,还手把手呢,自制hash_map,我们自己不会?我要的是使用教程啊。。
该文介绍了如何使用 muduo 库实现 C++ 多线程服务端,并总结了在多线程环境下使用 CountDownLatch 进行线程同步需要注意事项。
class MutexLockGuard : boost::noncopyable
总结了17个 C/C++业内非常经典的开源项目,能够很好的帮助上手与进阶C/C++项目开发,积累项目经验。
crow 是一款轻量级 c++ web 框架。它的设计理念类似 python 的 Flask 框架,轻量级,易于使用,快速。
包下载,必须下,别想着直接pip解决,不可能 网盘里面有【3.7x与3.9两个版本】的dlib安装包 链接:https://pan.baidu.com/s/1hL9TtwK5TuYcn1ntfjMDHg 提取码:1111 前置环境: python3.7版本安装 pip3 install cmake pip3 install boost pip3 install dlib-19.17.99-cp37-cp37m-win_amd64.whl python3.9版本安装 pip3 insta
安装文件下载目录:/data/software Mysql目录安装位置:/usr/local/mysql 数据库保存位置:/data/mysql 日志保存位置:/data/log/mysql
在NDK下编译thrift C++库,先要要编译android版的boost,这个不是本文讨论的内容,关于编译android 版本的boost,参见这个开源项目 Boost-for-Android,很好用。
上一篇博客《conan入门(十):Windows下Android NDK交叉编译Boost》中已经说明了Windows下Android NDK交叉编译Boost的全过程。
软件应用最重要的就是数据库了,可是还有小伙伴不会在Linux上安装MySQL数据库,今天就来讲讲如何在CentOS7环境使用源码进行安装MySQL5.7.30。
虽然我自己是在Linux环境上直接进行开发的,但也有许多的人是在Windows环境上从事开发工作的,如果离开自己熟悉的系统到陌生的环境上也许会影响到工作效率。
每个项目都必须处理依赖关系,而 CMake 使得在配置项目的系统上查找这些依赖关系变得相对容易。第三章,检测外部库和程序,展示了如何在系统上找到已安装的依赖项,并且到目前为止我们一直使用相同的模式。然而,如果依赖关系未得到满足,我们最多只能导致配置失败并告知用户失败的原因。但是,使用 CMake,我们可以组织项目,以便在系统上找不到依赖项时自动获取和构建它们。本章将介绍和分析ExternalProject.cmake和FetchContent.cmake标准模块以及它们在超级构建模式中的使用。前者允许我们在构建时间获取项目的依赖项,并且长期以来一直是 CMake 的一部分。后者模块是在 CMake 3.11 版本中添加的,允许我们在配置时间获取依赖项。通过超级构建模式,我们可以有效地利用 CMake 作为高级包管理器:在您的项目中,您将以相同的方式处理依赖项,无论它们是否已经在系统上可用,或者它们是否需要从头开始构建。接下来的五个示例将引导您了解该模式,并展示如何使用它来获取和构建几乎任何依赖项。
1系统约定 安装文件下载目录:/data/software Mysql目录安装位置:/usr/local/mysql 数据库保存位置:/data/mysql 日志保存位置:/data/log/mysql
0.导语1.Caffe源码编译1.0 NVIDIA与Anaconda31.1 GCC与G++降级1.2 cuda 9.01.3 cuDNN1.4 caffe-gpu源码编译1.5 python库安装1.6 编译1.7 环境变量1.8 导包测试2.caffe-cifar10测试2.1 获取数据集2.2 转换数据集格式2.3 训练及测试3.Caffe-C3D3.1 下载及配置3.2 安装库与编译4.C3D-cifar10测试4.1 获取数据集4.2 转换数据集格式4.3 训练及测试
之前尝试在CentOS7上部署ROOT集群,却发现无论是源码包安装,还是官方提供的二进制包,都缺少了关键的xproofd可执行文件,导致PoD不能运行。没有办法,只能尝试在其他OS上部署,这里我选择了Ubuntu 14.04。
前段时间看到了一个完成读比较高的协程库-libgo,里面提供了线程安全的协程实现,并且也是使用锁。本来我并没有给libcopp里的功能加锁的打算,因为上层dispatcher还是比较容易做到安全分发的,所以原来并不保证线程安全。而且线程安全这种问题单元测试比较难写,可能还得碰点运气。但是思来想去,还是为线程安全做点什么吧。反正也不是很复杂。
没有在Windows下开发的打算,代码也是用vim直接干,所以本系列博客是基于Linux平台的开发。 我用的是CentOS8,别的也可以,细微差别而已。 全程root权限下去玩。 不要被环境耽搁了,配个环境赶紧上车吧。
最近开始使用 robot framework 测试c++的动态库,robot framework 是跑在 windows 上面,c++动态库是跑在远程linux主机上面。测试办法是让 robot framework 通过 SSHLIbrary 库执行远程机器上面的 python 脚本,python 脚本调用 C++ 动态库。所以现在要解决的是怎么让python调用c++动态库。
之前已经写过一篇前传 MySQL Shell 8.0.32 for GreatSQL编译安装,最近再次编译MySQL Shell二进制包时,发现了一些新问题,因此重新整理更新本文档。
从reddit/hackernews/lobsters/meetingcpp摘抄一些c++动态
本次介绍如何在麒麟OS + 龙芯CPU的环境下将GreatSQL源码编译成二进制文件及RPM包等。
之前我写过的两篇博客《conan入门(十):Windows下Android NDK交叉编译Boost》,.《conan入门(十一):Linux下Android NDK交叉编译Boost》中介绍了在Linux和Windows下NDK交叉编译boost的过程
这篇文章主要是关于MySQL在编译安装时,可能出现的错误的解决方法。MySQL正确的编译安装操作见前文《2015博客升级记(四):CentOS 7.1编译安装MySQL5.7.7rc》。
最近开始使用 robot framework 测试c++的动态库,robot framework 是跑在 windows 上面,c++动态库是跑在远程linux主机上面。测试办法是让 robot framework 通过 SSHLIbrary 库执行远程机器上面的 python 脚本,python 脚本调用 C++ 动态库。所以现在要解决的是如何让python调用c++动态库。
领取专属 10元无门槛券
手把手带您无忧上云