从reddit/hackernews/lobsters/meetingcpp摘抄一些c++动态
在linux redhat 6.4环境下安装tensorflow的过程中,利用PIP直接安装是非常快的。 但是在调用测试的过程中,却发现报这样的错误。 /usr/lib64/libstdc++.so.6: version 'GLIBCXX_3.4.19' not found 导致总是出现 failed to load the native tensorflow runtime的信息。 根据这个问题,发现肯定是tensorflow的一些内部控件无法编译,主要原因还是版本太低。 在终端上输入如下命令:st
版权声明:本文为博主原创文章,转载请注明源地址。 https://blog.csdn.net/10km/article/details/50371044
最近在编译leveldb时,碰到一个问题:GLIBCXX_3.4.20 not found, 这个提示已经比较明显了,是本地缺少重要的二进制LIB库文件。
机房一台centos6.9机器部署了jenkins发布系统,开发人员在用node编译js,发现依赖的gcc版本低了,故需要将gcc升级到高版本(至少5.0版本以上),这里选择升级到6.4.0版本,下面是升级的操作记录:
C++的版本管理简单粗暴,像libc这种基础库如果需要多版本,用起来非常不方便,但c/c++基础库都是向下兼容的,最好的方式就是用一套比较新的系统,带着新的libc,再安装一套和系统版本同年代的新一点的gcc编译器即可,可满足大部分的使用场景,避免一套环境上折腾多套libc、libstdc++,经验之谈:非常麻烦性价比很低!
xxx.exe: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by xxx.exe)
最近安装新版本MySQL(Percona Server)时发现所依赖的libstdc++.so.6、libc.so.6均较高(尤其在Centos 6版本上安装时),导致无法完成数据库安装。
VS2015编译boost1.62 Boost库是一个可移植、提供源代码的C++库,作为标准库的后备,是C++标准化进程的开发引擎之一。 Boost库由C++标准委员会库工作组成员发起,其中有些内容有望成为下一代C++标准库内容。在C++社区中影响甚大,是不折不扣的“准”标准库。Boost由于其对跨平台的强调,对标准C++的强调,与编写平台无关。大部分boost库功能的使用只需包括相应头文件即可,少数(如正则表达式库,文件系统库等)需要链接库。但Boost中也有很多是实验性质的东西,在实际的开发中实用需要谨
E:\Cgal\cmake\boost_1_55_0\boost_1_55_0;C:\Program Files\CGAL\include;%(AdditionalIncludeDirectories)
一次偶然,发现完全同一份代码,在不同机器上find出现两个不同执行结果,本文旨在研究find的“诡异”行为,找出背后的原因。
注意,–build-type=complete表示生成debug release static shared的各种版本
Tips:如果不装libstdc++.so会报错:ImportError: /usr/lib64/libstdc++.so.6: version 'GLIBCXX_3.4.15' not found (required by /opt/calibre/lib/libQt5WebKit.so.5) GLIBC_2.18,GLIBCXX_3.4.19 # yum install libstdc++.so.6 -y --- 查看动态库版本有哪些 # strings /usr/lib64/libstdc++.
大多数研发人员使用 Mac 来调试代码,但我作为不懂研发的 DBA,并且作为 Windows 的粉丝,相信绝大多数运维同学也是使用 Win 的,那我必须使用 Win 了。从这篇文章开始,我尝试摸索 MySQL 源码的学习。
墨墨导读: Mysql的8.0版本出来已经有一段时间了,近期研究下源码调试。整个编译过程越来越复杂了。
boostc++cmake Cmake cannot find Boost libraries 我是Cmake的新手,并增强了C ++中的库。 我正在做一个需要boost和Cmake的项目。 我正在使用Cmake版本2.8.11,MS Visual Studio 2013和Boost 1.54.0。 当我尝试从Cmake配置时,出现以下错误:
Boost库是一个经过千锤百炼、可移植、提供源代码的C++库,作为标准库的后备,是C++标准化进程的发动机之一。 Boost库由C++标准委员会库工作组成员发起,其中有些内容有望成为下一代C++标准库内容。在C++社区中影响甚大,其成员已近2000人。 Boost库为我们带来了最新、最酷、最实用的技术,是不折不扣的“准”标准库。
PCL1.9.1并没有支持vs2015版本的exe版本,然后需要下载PCL的源码重新自己CMake编译出vs2015版本的
'Microsoft.VC90.CRT,version="9.0.21022.8"
说明:以下涉及的std::string的源代码摘自4.8.2版本。 结论:std::string的拷贝复制是基于引用计数的浅拷贝,因此它们指向相同的数据地址。 // std::string类定义 typedef basic_string string; template class basic_string { private: // _Alloc_hider是模板类basic_string内嵌struct struct _Alloc_hider :
# 找到boost特定版本,以及需要的子模块,1.46.1为最低版本,REQUIRED强调必须找到该模块,否则编译失败;
我仔细的在C:\boost_1_64_0目录下搜索了一下,根本就没有libboost_regex-vc140-mt-sgd-1_64.lib这个库文件,那咋办,找教程编译呗 编译boost库工程的是一个叫bjam.exe的程序,但是从网上下载下来的boost_1_64_0.7z里是没有的,所以首先是运行boost根目录下的bootstrap.bat批处理文件,编译后的bjam.exe会自动拷贝到该目录下(bjam必须与boost-build.jam在同级目录)。
2)基于源码安装MySQL,从cmake开始,基本要被bison,curces,boost折腾一波
在NDK下编译thrift C++库,先要要编译android版的boost,这个不是本文讨论的内容,关于编译android 版本的boost,参见这个开源项目 Boost-for-Android,很好用。
Boost是一个强大的C++第三方库,但是Boost的各种问题实在是很让人蛋疼。我搜到过一篇文章关于LuaBind使用Boost Build管理工具来管理源代码以及编译的博文,其第一句话就是Fuck The Boost!it is the pain of ass!
rem 编译64位boost rem 一直以来都是在Win32环境下Build和使用boost,但现在基本上每天都在64位Win7下工作, rem 所以很有必要把这几天的经验总结下来。和32位环境不同, rem x64环境下编译得先从开始菜单启动Visual Studio的Visual Studio 2008 x64 Win64 Command Prompt进入命令提示符, rem 而不是随便打开任意一个命令行窗口就行。然后转到boost根文件夹,运行bootstrap.bat生成x64版的bjam.exe。然后运行命令: rem bjam --build-type=complete toolset=msvc-9.0 threading=multi link=shared address-model=64 rem 即可生成DLL版平台库,如果要编译静态库版就把shared改为static。 rem 只生成一个库的话加上例如–with-python得编译选项,避免生成东西太多、时间太长。 rem 要有address-model=64属性,如果没有这个属性的话,会默认生成32位的平台库,加入这个选项才能生成64位的DLL。 rem 如果要生成Boost.Python库,需要先下载安装x64版的Python安装包,我用的版本是3.2.3。 rem 在使用这个库编写Python扩展DLL时,默认是使用动态库版的Boost.Python,要使用静态版的必须 rem 在C++项目中定义BOOST_PYTHON_STATIC_LIB宏,这样就不用在使用或发布扩展时带着boost_python-vc90-mt-1_50.dll一起了, rem 当然扩展DLL的尺寸会大些,如果做实验没必要这样,编译又慢生成的文件也大。 rem vs工具链版本:vs2003 : msvc-7.1,vs2005 : msvc-8.0,vs2008 : msvc-9.0,vs2010 : msvc-10.0
backward_ros功能包是对backward-cpp包的ROS2封装,以便可以简单快速地使用GDB工具。
背景就是上一篇文章提到的,部署gitbook这个文档中心的话,是需要先安装node,然后,如果你的node版本过高的话,一般会报错,此时,网上很多文章就是降node版本解决,但其实用高版本也是有办法的,只是麻烦点,要改改代码;但是,我下载了高版本的node安装时,发现在centos7上还装不了,可谓一波未平一波又起。
经历了将近半年多的时间boost终于发布了1.35.0版本(前版本1.34.1发布于2007/7), 其编译方法和原来的编译方法基本上是一致的,主要改变包括1.34.0以来bjam的toolset所 提供的参数名称的改变(具体参见《boost1.34.0编译日志》)外,还包括bjam的编译默认 选项的变化,在1.35.0之前的版本默认编译时会自动编译各种版本的库,包括静态库、 动态库、debug库和release库等全部的版本,但是到了1.35.0时默认的选择仅仅编译release 版本的库,这样一来在开发的时候就不能进行必要的调试了,为了能够使其编译全部的版本 需要在bjam的命令行参数中添加一个–build-type=complete类型的参数来指明需要编译全 部的版本,所需要编译同时为了使得regex库能够通过ICU库支持Unicode,在编译上需要有 一些特殊的选择。我在Visual Studio 2005 Pro + SP1环境下编译了该库,为了避免走弯路 所以将其编译的方法进行说明,以方便大家编译。 由于boost是采用其自己的bjam工具通过命令行进行编译的,所以必须在Windows下开启console窗口,同时必须将Visual Studio中C++目录下的环境vcvarsall.bat配置脚本运行一遍,以设置好VC的编译器环境变量。 1. 编译不带ICU支持的boost库 此种情况下的boost库编译起来比较的简单,在准备好的console窗口中输入:
libtorch cross compile on aarch64-linux-gnu-gcc include torchvision
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件。
Rstudio Desktop for Windows/Mac 切换不同R版本非常简单,Tools→Global Options→General→Basic→R Sessions→R version→Change:
在启动watchman报错,找不到GLIBCXX_3.4.14、GLIBCXX_3.4.15、GLIBCXX_3.4.18、CXXABI_1.3.5等
CGAL_Boost_USE_STATIC_LIBS:BOOL=ON,这个默认是off,编译静态库,要修改,否则找不到
有些书上说array也是一个class,但是我这个版本看到的是struct,不过没有关系,除了一些细微的方面,struct和class并无太大的区别,这里可以看到array其实就是一个模板类。
Boost是一个功能强大、构造精巧、跨平台、开源而且完全免费的C++程序库,有着“C++ '准’标准库”的美誉。 Boost是由C++标准委员会部分成员所设立的Boost社区开发并维护,使用了许多现代C++编程技术,内容涵盖字符串处理、正则表达式、容器与数据结构、并发编程、函数式编程等。目前已经更新到了1.72.0版本,官网下载地址为:https://www.boost.org/users/history/version_1_72_0.html,由于我之前在自己Windows10系统上安装的是Boost 1.69.0,其源代码下载地址为:https://sourceforge.net/projects/boost/files/boost/1.69.0/,所以本文直接演示在VS2017下使用boost1.69.0版本,使用32位的debug模式进行测试,其他的64位和VS编译器同理。
xmake 是一个基于 Lua 的轻量级跨平台构建工具,使用 xmake.lua 维护项目构建,相比 makefile/CMakeLists.txt,配置语法更加简洁直观,对新手非常友好,短时间内就能快速入门,能够让用户把更多的精力集中在实际的项目开发上。
b2 stage --toolset=msvc-14.2 --build-type=complete --stagedir=“stage/MTd/static” link=static runtime-link=static threading=multi address-model=64 debug release 1 /// 跳过指定模块
为体验C++17和C++20特性,需安装更新版本的GCC编译器。GCC官网为:https://gcc.gnu.org/,从这里可以下载最新版本的GCC。
线上服务出现了重启告警,而且重启后继续。排查线上出现了一堆core,core信息显示如下:
摘要总结:本文主要介绍了如何在Linux系统下通过配置user-config.jam文件来指定编译器,以便在编译Boost库时指定使用某个版本的编译器,从而避免因为系统中多个版本的编译器导致的问题。
tensorflow bazel 编译命令: (编译cpu支持的版本,限制编译的内存为2GB, 并兼容旧版本的ABI)
windows下命令编译boost的基本参数说明(以1.62为例): bjam install ^ --prefix=E:\caffe-static\release\boost_windows_vc140_x86_64_md ^ --without-python -a -d+3 -q -j8 ^ --debug-configuration ^ link=static ^ runtime-link=shared ^ toolset=msvc-14.0 ^ address-model=64 ^
其实,上述两种结果都是正确的,第一种正确的前提是基于gcc5.1之前的版本,第二种正确的前提是基于gcc5.1(包含)以后的版本。
1。首先在Boost的官网下载Boot源码,分为Windows版本和Linux版本。下载好以后进行加压(我的解压目录是:E:\C++\Library\boost_1_62_0)。
Xmake 是一个基于 Lua 的轻量级跨平台构建工具,关于 Xmake 与构建系统的介绍,我们已经在之前的文章中做了详细的介绍:C/C++ 构建系统,我用 xmake。
Zabbix 监控nginx服务需要“http_stub_status_module”模块,但openEuler和麒麟V10系统 yum install nginx 缺失“--with-http_stub_status_module”模块,需要下载同版本nginx源码包编译后替换nginx执行文件。
[https://doc.cgal.org/4.4/Manual/installation.html#secprerequisites] cgal4.4编译以及安装
1,下载好软件包 "STLport_5.2.1.tar.bz2" 以及 "boost_1_46_1.zip"。
每一个开发人员都需要一个良好的IDE,EOS开发也是一样,为项目开发过程构建一个良好的IDE环境是第一步。这就是为什么我们要写这个如何使用VS Code或者CLion进行EOS开发的快速教程的原因。
领取专属 10元无门槛券
手把手带您无忧上云