C++
huang_yx005
这个作者很懒,什么都没留下…
展开
-
pytorch源码编译
下载源代码和依赖库需要在内部隔离网络中从源码编译pytorch,但内部网络无法链接github。且pytorch依赖库众多,一个一个地下载依赖库不太现实。我采用的方法是:在外部可联网的机器上git clone pytorch源码,切换到所需的branch或者tag上。使用命令git submodules update --init --recursive下载所有的依赖库。这一步非常耗时,也可能会失败,需要反复执行该命令,直到没有报错了,所有的依赖库才算都下载了。注意一定要加上 --recursive,因原创 2022-05-12 11:06:17 · 4253 阅读 · 0 评论 -
如何理解和解决CXXABI not found问题?
编译C++程序时,在链接阶段有时会出现CXXABI not found的问题。/usr/lib64/libstdc++.so.6: version `CXXABI_1.3.8' not found该问题出现的一般场景是:当前编译的程序需要依赖其它已编译的共享库,如果当前的编译器环境与某个依赖共享库的编译器环境不一致,就有可能出现CXXABI not found的问题。C++程序中依赖第三方提供的组件库有两种方法:一是拿来需依赖的组件库的源代码,与我们自己的程序一起进行编译。这种方法就不会出现上原创 2022-05-11 09:35:53 · 4567 阅读 · 0 评论 -
软件版本号的意义
RC=Release Candidate,含义是”发布候选版”,它不是最终的版本,而是最终版(RTM=Release To Manufacture)之前的最后一个版本。广义上对测试有三个传统的称呼:alpha、beta、gamma,用来标识测试的阶段和范围。alpha 是指内测,即现在说的CB,指开发团队内部测试的版本或者有限用户体验测试版本。beta 是指公测,即针对所有用户公开的测试版本。然后做过一些修改,成为正式发布的候选版本时叫做gamma,现在叫做RC(Release Candidate)..原创 2022-05-09 14:31:06 · 428 阅读 · 0 评论 -
C++中的RAII技术
RAII: resource acquisition is initialization 资源获取即初始化。在构造函数中申请分配资源,在析构函数中释放资源,它是C++语言中的一种管理资源、避免泄漏的良好方法。RAII技术要解决的问题:内存泄漏,资源忘记释放。RAII技术利用C++的语言机制,来保证资源正确释放:在类对象的构造函数中申请分配资源,在析构函数中释放资源。C++的语言机制保证了析构函数一定会被调用。std::shared_ptr和std::unique_ptr就是RAII技术的典型应用原创 2022-05-05 21:16:54 · 1068 阅读 · 0 评论 -
C++匿名命名空间的作用
C++学习笔记:默认命名空间与匿名命名空间 - it610.com原创 2022-04-12 10:32:31 · 894 阅读 · 0 评论 -
liunx下的程序运行
so的加载顺序:环境变量LD_LIBRARY_PATH下的库/lib and /usr/lib等路径下的库/etc/ld.so.conf里指定的路径(如果ld.so.conf存在)原创 2022-04-07 09:35:33 · 86 阅读 · 0 评论 -
vscode使用
vscode设置#define定义宏_hjxu2016的博客-CSDN博客_vscode 预定义宏原创 2022-03-31 15:45:24 · 601 阅读 · 0 评论 -
Onnxruntime学习笔记
onnx模型存储规范使用profobuf协议定义,由onnx-ml.proto(3), onnx-data.proto(3), onnx-operators-ml.proto(3)等3个协议文件组成。为了兼容protobuf2和protobuf3标准,每个协议文件都有2个版本,后缀为.proto和.proto3。onnx-ml.proto(3)文件定义了Model.ModelProto是onnx模型文件的顶级容器。message ModelProto {ir_versionopset_import原创 2022-03-24 14:45:00 · 694 阅读 · 0 评论 -
动态链接库常用工具
nm列出文件中的符号,对动态库、静态库、可执行文件均可以使用ldd列出动态库、可执行文件所依赖的库原创 2022-03-23 14:22:44 · 318 阅读 · 0 评论 -
C++标准库提供的函数和变量
WinDef.h//用于Windows#define MAX_PATH 260StdLib.h//用于CRT(C运行库)#define _MAX_PATH 260可以发现,二者值是一样的。前面加下划线习惯上代表该函数(变量)是由C运行库提供的,只是惯例而已。原创 2022-03-01 13:56:25 · 551 阅读 · 0 评论 -
C++中的关键字
override使用场景:可以防止派生类的函数拼写错误,强制编译器进行对函数签名进行检查原创 2022-02-28 13:02:15 · 319 阅读 · 0 评论 -
构造函数和赋值运算符
ss原创 2022-02-22 13:04:35 · 93 阅读 · 0 评论 -
C++ string操作函数
template <class T>std::string join(T& val, std::string delim){ std::string str; typename T::iterator it; const typename T::iterator itlast = val.end()-1; for (it = val.begin(); it != val.end(); it++) { str += *it;...原创 2022-02-22 09:52:12 · 662 阅读 · 0 评论 -
C++异常处理
1.与异常有关的代码可以分为异常检测部分和异常处理部分。异常检测部分抛出异常,异常处理部分捕获异常并处理异常;2.当异常被抛出后,立即沿着函数调用链寻找能够处理该异常的代码(这个过程成为堆栈展开)。如果没有找到处理该异常的代码,程序将调用标准库中的terminate函数终止程序。3.某个函数内部抛出了异常,而且没有找到处理该异常的代码,则函数立即退出,异常抛出前生成的局部对象将被析构。从这个角度看,throw有点像return的作用。因而函数有可能不像预期的那样顺序执行,可能在中间某个位置,调用原创 2022-02-22 09:43:13 · 902 阅读 · 0 评论 -
MT与MD
VC项目属性→配置属性→C/C++→代码生成→运行时库 可以采用的方式有:多线程(/MT)、多线程调试(/MTd)、多线程DLL(/MD)、多线程调试DLL(/MDd)、单线程(/ML)、单线程调试(/MLd)。目前Win7、Win10等,选择MD问题不大,但是XP等一些比较老的系统需要选择MT两者的区别/MT是 "multithread, static version ” 意思是多线程静态的版本,定义了它后,编译器把LIBCMT.lib 安置到OBJ文件中,让链接器使用LIBCMT.lib 处转载 2021-09-07 10:24:32 · 539 阅读 · 0 评论 -
C++标准程序库
C++标准程序库的标准化1998年,标准化委员会起因:标准库太大,名字混乱,易冲突解决:引入名字空间namespace std原创 2021-08-13 17:29:31 · 79 阅读 · 0 评论 -
WFST中的一些概念
WFST是基于半环代数理论的,在介绍半环之前我先简单的说一下群和半群。群(Group):G为非空集合,如果在G上定义的二元运算*,满足:(1)封闭性(Closure):对于任意a,b∈G,有a∗b∈G;(2)结合律(Associativity):对于任意a,b,c∈G,(a∗b)∗c=a∗(b∗c);(3)幺元(Identity):存在幺元e,使得对于任意a∈G,e∗a=原创 2016-06-16 16:57:04 · 3546 阅读 · 0 评论 -
MD5和CRC
MD5和CRC都是某种信息摘要算法。MD5能够生成一段信息(可以很大如视频文件,也可以很小如密码)的信息摘要(126bits,16Bytes)。这个信息摘要相当于这段信息的数字签名,能够防止这段信息被篡改。CRC生成的信息摘要长度4bytes,且对源信息的大小有限制(小于4GBytes)。/* Md5 number length */#define SMART_MD5NUMBER_SIZ原创 2016-12-28 18:58:07 · 2647 阅读 · 0 评论 -
centos编译Aegisub
安装wxWidgets时缺少gtk:yum -y install gtk2-devel binutils-devel原创 2021-06-06 22:01:25 · 156 阅读 · 0 评论 -
标准C++中的string类的用法总结
http://www.cnblogs.com/xFreedom/archive/2011/05/16/2048037.html转载 2016-03-04 14:29:58 · 228 阅读 · 0 评论 -
NEON指令集
Intel公司的单指令多数据流式扩展(SSE,Streaming SIMD Extensions)技术能够有效增强CPU浮点运算的能力。SIMD(single-instruction, multiple-data)是一种使用单道指令处理多道数据流的CPU执行模式,即在一个CPU指令执行周期内用一道指令完成处理多个数据的操作。http://blog.csdn.net/tonyfield2原创 2017-04-17 15:50:21 · 2842 阅读 · 0 评论 -
Python显示目录的树形结构
转自http://blog.chinaunix.net/uid-21374062-id-5198995.htmlPython显示目录的树形结构# -*- coding: utf-8 -*- '''仿Linux命令tree生成树形目录结构,并汇总当前目录下文件总算Author: ***Date: 2015-09-18'''import osdef fileCntIn(转载 2016-08-24 12:48:34 · 8767 阅读 · 0 评论 -
Win7下安装Visual Stdio 2015后ucrtbased.dll丢失问题
安装Visual Stdio 2015 要求Win7 升级到sp1通过运行winver命令查看Windows版本号Win7 SP1内部版本号 7601因此安装Visual Stdio 2015至少要求Windows版本号>= 7601安装完Visual Stdio 2015后,通过c++ 2015编译的程序无法运行,提示缺少ucrtbased.dll解决原创 2017-11-10 16:10:33 · 2914 阅读 · 2 评论 -
使用obfuscator llvm 和andorid NDK进行代码混淆
1.下载ollvmhttps://github.com/obfuscator-llvm/obfuscator/tree/llvm-3.42.解压,并编译mkdir buildcd buildcmake -DCMAKE_BUILD_TYPE:String=Release ../obfuscator/make -j83.创建andorid nkd独立工具链cd原创 2017-08-03 16:48:18 · 1338 阅读 · 0 评论 -
并行计算
并行计算之OpenMP入门简介OpenMp提供了对并行算法的高层的抽象描述,程序员通过在源代码中加入专用的pragma来指明自己的意图,由此编译器可以自动将程序进行并行化,并在必要之处加入同步互斥以及通信。利用多线程进行加速。原创 2017-04-17 22:09:44 · 271 阅读 · 0 评论 -
安装GLIBC_ 2.14
http://blog.csdn.net/cpplang/article/details/8462768/1.试图运行程序,提示"libc.so.6: version `GLIBC_2.14' not found",原因是系统的glibc版本太低,软件编译时使用了较高版本的glibc引起的:[cpp] view plain copy转载 2017-04-21 10:37:15 · 4533 阅读 · 0 评论 -
Android性能监控小工具
//编译方法如下://d:\android-ndk-r8e-windows-x86\android-ndk-r8e为Android NDK根目录//cd d:\android-ndk-r8e-windows-x86\android-ndk-r8e\toolchains\arm-linux-androideabi-4.6\prebuilt\windows\bin\//arm-linux-andr原创 2017-02-23 08:41:49 · 776 阅读 · 0 评论 -
android ndk 减小jni动态库的大小
http://blog.csdn.net/hhh901119/article/details/71175609用readelf -SW libxxx.so可以看到动态库里的信息; 发现有需要.debug信息段。用命令arm-linux-androideabi-strip --strip-debug libxxx.so; 对动态库中的含.debug_xxx的section进行裁剪转载 2018-02-01 21:26:06 · 2256 阅读 · 0 评论 -
深入C++的new
http://blog.csdn.net/songthin/article/details/1703966转载 2018-02-09 20:58:26 · 131 阅读 · 0 评论 -
内存泄漏和内存增长
内存泄漏和内存增长不是同一个问题。内存增长的现象是运行时内存占用越来越大,这种现象有可能是有意设计的。内存泄漏是指分配的内存没有释放,导致内存不能归还操作系统。现代的操作系统一般都能在进程结束后回收所有内存。如果是没有这种内存回收机制就只好重启机器了。VS下检测内存泄漏的方法:#ifdef _DEBUG#define DEBUG_NEW new( _NORMAL_BLOCK, __FILE__, ...原创 2017-03-29 19:13:21 · 1796 阅读 · 0 评论 -
swig-c/c++与高级脚本语言之间的胶水工具
SWIG是c/c++与高级脚本语言之间的胶水工具。http://www.swig.org/一个简单的例子http://www.swig.org/tutorial.htmlc语言代码 /* File : example.c */ #include <time.h> double My_variable = 3.0; int fact(int n) { if (n ...原创 2018-05-28 17:03:14 · 377 阅读 · 0 评论 -
moses 安装
源码地址:https://github.com/moses-smt/mosesdecoder安装步骤:Run the following to install a recent version of Boost (the default version on your system might be too old), as well as cmph (for CompactPT), ir...原创 2018-11-01 11:39:48 · 937 阅读 · 0 评论 -
gcc
GCC命令行参数,看看各个版本的区别——32位版:加上 -m32 参数,生成32位的代码。64位版:加上 -m64 参数,生成64位的代码。debug版:加上 -g 参数,生成调试信息。release版:加上 -static 参数,进行静态链接,使程序不再依赖动态库。加上 -O3 参数,进行最快速度优化。加上-DNDEBUG参数,定义NDEBUG宏,屏蔽断言。 gcc的安装ht...原创 2016-06-08 11:50:56 · 204 阅读 · 0 评论 -
open source
speech recognition:1.kladiThis is one of the newer speech recognition tool kits, but it has made a name for itself fast! Development began in 2009 at a workshop at John Hopkins University called “...原创 2018-12-28 13:59:49 · 298 阅读 · 0 评论 -
UTF-8 GBK
UTF-8(8-bit Unicode Transformation Format)是一种针对Unicode的可变长度字符编码,又称万国码。UTF-8用1到6个字节编码UNICODE字符。ASCII的7位字符集,它是美国标准信息交换代码(American Standard Code for Information Interchange)的缩写, 为美国英语通信所设计。它由128个字符组成,包原创 2016-04-08 16:24:01 · 444 阅读 · 0 评论 -
《More Effective C++》笔记
Item M5:将单参数的构造函数申明成explicit,避免隐式类型转换。当我们自定义一个类类型时,单参数的构造函数能够作为隐式类型转换函数。所谓单参数的构造函数是指只有一个参数的构造函数,也包括除第一个参数外其余参数均有默认实参的多参数构造函数。隐式类型转换函数什么时候调用?当我们因为笔误写出一个错误的表达式,这个表达式因为类型不匹配应该不能通过编译。但是编译器会尝试各种隐式类型转换函数使原创 2017-03-22 08:44:08 · 394 阅读 · 0 评论 -
程序中的相对路径
使用VS调试程序时,程序中的相对路径均相对于项目路径(非解决方案路径);在cmd中运行程序时,程序中的相对路径均相对于程序所在路径原创 2016-04-20 16:51:39 · 602 阅读 · 0 评论 -
sscanf函数和正则表达式
http://blog.csdn.net/kenby/article/details/4051018点击打开链接转载 2016-04-21 15:33:37 · 265 阅读 · 0 评论 -
字符编码
AMERICAN NATIONAL STANDARDS INSTITUTE: ANSIANSI:系统预设的标准文字储存格式。字符内码(charcter code)指的是用来代表字符的内码.读者在输入和存储文档时都要使用内码,内码分为 单字节内码 -- Single-Byte character sets (SBCS),可以支持256个字符编码. 双字节内码 --原创 2016-04-19 17:32:04 · 232 阅读 · 0 评论 -
编译原理
符号表用来存放程序中出现的有关标识符的属性信息。① 收集符号属性 ② 上下文语义的合法性检查的依据 ③ 作为目标代码生成阶段地址分配的依据原创 2016-05-13 09:58:02 · 182 阅读 · 0 评论