- 博客(115)
- 资源 (1)
- 收藏
- 关注
翻译 使用Clang作为库 —— Clang 的重构引擎
Clang 的重构引擎1. 介绍2. 重构操作规则(Refactoring Action Rules)3. 规则类型4. 如何创建规则5. 重构操作规则需求(Refactoring Action Rule Requirements)6. 选择需求(Selection Requirements)7. 其他需求8. 重构选项(Refactoring Options)本文为译文,点击此处查看原文。本...
2019-06-04 09:49:37
1533
原创 使用Clang作为库 —— JSON Compilation Database Format Specification
JSON Compilation Database Format Specification
2019-05-30 14:55:05
4367
原创 使用Clang作为库 —— 使用 LibTooling 和 LibASTMatchers 构建工具的教程
使用 LibTooling 和 LibASTMatchers 构建工具的教程
2019-05-30 14:51:16
6963
5
原创 使用Clang作为库 —— 如何编写基于 ASTFrontendActions 的 RecursiveASTVisitor
如何编写基于ASTFrontendActions的RecursiveASTVisitor
2019-05-30 14:29:49
4953
6
原创 使用Clang作为库 —— LibFormat
LibFormat1. 设计2. 接口3. Style Options本文为译文,点击此处查看原文。LibFormat是一个基于Clang实现自动源代码格式化的库。本文档描述了LibFormat接口和设计,以及一些基本的样式讨论。如果您只想使用clang-format作为一个工具或集成到一个编辑器中,请签出ClangFormat。1. 设计FIXME:补充设计。2. 接口LibFor...
2019-05-30 14:27:37
973
原创 使用Clang作为库 —— 外部Clang示例
外部Clang示例1. 介绍2. 项目和工具列表本文为译文,点击此处查看原文。1. 介绍本页面提供了一些人们使用 Clang 所做的事情的示例,这些示例可以作为开发自己工具的有用指南(或起点)。它们甚至可能对一些像如何设置您的构建以集成Clang这样普通(但必要)的东西都有帮助。Clang基于库的设计旨在促进外部项目的使用,我们一直对改进 Clang 以更好地服务于外部用户感兴趣。Clan...
2019-05-30 11:32:06
1934
原创 使用Clang作为库 —— 为应用程序选择正确的接口
为应用程序选择正确的接口1. LibClang2. Clang Plugins3. LibTooling本文为译文,点击此处查看原文。Clang提供了用于编写需要有关程序的语法和语义信息的工具的基础设施。本文将简要介绍编写clang工具的不同方法,以及它们的优缺点。1. LibClangLibClang是clang的一个稳定的高级C接口。当你有疑问时,LibClang可能是您想要使用的接口...
2019-05-30 10:52:03
1491
原创 DOM(Document Object Model,文档对象模型)
DOM1. 历史2. 标准3. 应用程序3.1 Web浏览器3.2 JavaScript4. 实现4.1 布局引擎(Layout engines)4.2 库5. 参考文献本文为译文,点击此处查看原文。文档对象模型(DOM)是一个跨平台的、独立于语言的应用程序编程接口,它将XML文档视为树结构,其中每个节点都是表示文档一部分的对象。DOM表示具有逻辑树的文档。树的每个分支都以一个节点结束,每个节...
2019-05-29 17:39:39
1497
原创 Duck typing
Duck typing1. 示例2. 在静态类型语言中3. 与其他类型系统的比较3.1 结构化类型体系3.2 协议与接口3.3 模板或泛型类型4. 批评4.1 对术语本身的批评5. 其他资料6. 参考文献本文为译文,点击此处查看原文。在计算机程序设计中,Duck typing是Duck test的一个应用程序 —— “如果它像鸭子一样走路,像鸭子一样嘎嘎叫,那么它一定是鸭子” —— 用于确定一...
2019-05-29 15:03:59
889
原创 AST(Abstract syntax tree,抽象语法树)
AST1. 在编译器中的应用程序1.1 动机1.2 设计1.3 设计模式1.4 使用2. 另请参阅3. 参考文献4. 进一步的阅读本文为译文,点击此处查看原文。有关语言学中使用的树,请参见具体语法树。在计算机科学中,抽象语法树(AST),或简称语法树,是用编程语言编写的源代码的抽象语法结构的树表示。树的每个节点表示源代码中出现的一个构造。语法是“抽象的”,因为它并不代表真实语法中出现的每个细节...
2019-05-28 17:45:10
9732
翻译 使用Clang作为库 —— Clang AST
Clang AST1. 介绍2. 检查AST3. AST Context4. AST节点本文档温和地介绍了Clang AST的神秘之处,主要针对那些希望为Clang做贡献的开发人员,或者使用基于Clang AST的工具(如AST matchers)的开发人员。1. 介绍Clang的AST不同于其他编译器生成的AST,因为它非常类似于编写的C++代码和C++标准。例如,括号表达式和编译时常量在...
2019-05-28 12:48:18
6352
原创 使用libclang解析C++代码
使用libclang解析C++代码1. libclang?2. libclang!3. 基本的例子4. Cursors(游标)5. Visit children6. CXString7. 打印有意义的输出8. 一个更复杂的例子9. 总结10. 完整的代码本文为译文,点击此处查看原文。在本文中,我将提供一个使用libclang的快速教程。我开始试用libclang,同时实现了一个面向c++的开源...
2019-05-28 12:17:11
15234
5
原创 动态链接库和静态链接库
库的介绍库是写好的现有的,成熟的,可以复用的代码。现实中每个程序都要依赖很多基础的底层库,不可能每个人的代码都从零开始,因此库的存在意义非同寻常。本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。库有两种:静态库(.a、.lib)和动态库(.so、.dll)。 windows上对应的是.lib .dll linux上对应的是.a .so在这里先介绍下Linux下的gc...
2019-05-27 17:56:10
738
原创 GCC编译过程
1. GCC定义目前 Linux 下最常用的 C 语言编译器是 GCC ( GNU Compiler Collection ),它是 GNU 项目中符合 ANSI C 标准的编译系统,能够编译用 C 、 C++ 和 Object C 等语言编写的程序。 GCC 不仅功能非常强大,结构也异常灵活。最值得称道的一点就是它可以通过不同的前端模块来支持各种语言,如Java 、 Fortran 、 Pas...
2019-05-24 17:56:19
2858
原创 linux下gcc默认搜索头文件及库文件的路径
1. 头文件gcc在编译时如何去寻找所需要的头文件:头文件的搜索会从-I指定的目录开始;然后搜索gcc的环境变量 C_INCLUDE_PATH,CPLUS_INCLUDE_PATH,OBJC_INCLUDE_PATH 设置的目录;再搜索系统目录 /usr/include 和 /usr/local/include(centos7中该目录下是空的);最后搜索gcc的一系列自带目录(如/us...
2019-05-24 17:07:47
6093
原创 dpkg与rpm、apt-get与yum
dpkg与rpm、apt-get与yum1. dpkg2. rpm3. apt4. yum目前的linux系统大致分为两类:RedHat 系列:Redhat、Centos、Fedora 等,使用rpm;Debian 系列:Debian、Ubuntu 等,使用dpkg。由于自由软件的蓬勃发展,怎么管理越来越多的软件对于linux系统来说非常关键。1. dpkgdpkg(package...
2019-05-24 16:30:06
1658
原创 如何在LINUX和UNIX中设置PATH
如何在LINUX和UNIX中设置PATH1. 什么是path?2. 为什么要设置PATH变量?3. 如何查看路径变量值?4. 如何设置路径变量?5. 如何永久设置路径变量?本文为译文,点击此处查看原文1. 什么是path?path是操作系统文件系统中文件或文件夹的唯一位置。一个文件的path是/和字母数字字符的组合。2. 为什么要设置PATH变量?PATH变量是系统变量或环境变量,用于存...
2019-05-24 14:05:28
1571
原创 linux系统目录详解
linux系统目录详解1. /bin文件夹相关1.1 /bin1.2 /sbin1.3 /usr/bin1.4 /usr/sbin1.5 /PATH/TO/SOME/BIN(/usr/local/bin)1.6 /PATH/TO/SOME/SBIN(/usr/local/sbin)2. /boot文件夹2.1 /boot/config-2.6.18-194.17.1.el5文件2.2 /boot/...
2019-05-24 12:38:35
2800
转载 新小米手机--首次使用
开始使用小米手机1、手机开机2、选择语言3、连接互联网4、使用条款5、登陆小米账号6、开启查找手机7、恢复数据8、其他设置9、个性化风格10、系统导航方式11、完成本文转载自:https://www.mi.com/service/miphone/firstuse/在设置过程中,填写或设置错误随时可以点击“返回”键,返回上一步重新填写或设置。1、手机开机长按电源键将手机开机,点击“箭头”进入...
2019-05-15 13:26:36
5905
转载 HTML 样式
HTML 的 style 属性style 属性的作用:提供了一种改变所有 HTML 元素的样式的通用方法。样式是 HTML 4 引入的,它是一种新的首选的改变 HTML 元素样式的方式。通过 HTML 样式,能够通过使用 style 属性直接将样式添加到 HTML 元素,或者间接地在独立的样式表中(CSS 文件)进行定义。不赞成使用的标签和属性在 HTML 4 中,有若干的标签和属性是被废...
2019-05-08 09:26:37
232
转载 Office Tool 四月份问题反馈汇总
Office Tool 四月份问题反馈汇总问题 1:Office 无法安装问题 2:Office 无法激活问题 3:Office 无法启动,Office 使用异常问题 4:Office Tool 无法正常启动问题 5:无法更改更新通道问题 6:如何更改 Office 的安装位置小小的总结本文转载自:https://www.landiannews.com/archives/58229.html在...
2019-05-06 15:05:59
14313
1
原创 LLVM常用命令
.cpp -> .bc/.llclang++ -emit-llvm -c test.cpp -o test.bcclang++ -emit-llvm -S test.cpp -o test.ll.bc -> .ll & .ll -> .bcllvm-dis test.bc -o test.llllvm-as test.ll -o test.bc.bc/.ll...
2019-04-30 09:21:39
2081
原创 C++开源软件
tinyserver:https://www.oschina.net/p/tinyserverejson:https://www.oschina.net/p/ejson
2019-04-28 11:05:21
369
原创 KHTML
语言:C++介绍地址:https://api.kde.org/frameworks/khtml/html/index.html获取源代码:git clone https://anongit.kde.org/khtml.git
2019-04-28 10:23:07
1325
原创 浏览器内核
浏览器内核1. 简介2. 内核分类2.1 Trident2.2 Gecko2.3 Presto2.4 Webkit2.5 Blink3. 排版引擎3.1 WebCore3.2 KHTML4. JavaScript引擎1. 简介浏览器内核(Rendering Engine)的通俗解释就是渲染引擎,负责对网页语法的解释(如HTML、JavaScript)并渲染(显示)网页, 可认为包含排版引擎和J...
2019-04-26 18:00:15
509
原创 附录 - 常见问题解答
1. Building1.1 Why is my program trying to link to a Boost library?(为什么我的程序试图链接到一个Boost库?)如果您已经定义了RCF_USE_BOOST_SERIALIZATION,那么RCF将需要链接到Boost.Serialization库。如果您已经定义了RCF_USE_BOOST_FILESYSTEM,那么RCF将...
2019-04-19 14:43:21
545
原创 RCF简介
RCF简介1. What is RCF?2. Why should I use RCF?1. What is RCF?RCF (Remote Call Framework,远程调用框架)是一个面向C++的跨平台进程间通信框架。与其他通信框架不同,RCF不使用单独的IDL(Interface Definition Language,接口定义语言)。RCF接口是在C++中直接定义的,用户定义数据...
2019-04-18 17:04:50
6480
原创 boost共享库无法加载解决方案
./test1: error while loading shared libraries: libboost_serialization.so.1.70.0: cannot open shared object file: No such file or directory之前的c++文件编译g++ -o test boost_test.cpp -IBOOSTINCLUDE−LBOOST_I...
2019-04-18 08:17:40
2120
原创 JavaWeb问题汇总
JavaWeb问题汇总1. 页面请求时出现错误:The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.1. 页面请求时出现错误:The origin server did not find a cur...
2019-04-17 12:21:44
907
转载 myeclipse修改乱码(编码格式修改)
myeclipse修改乱码(编码格式修改)一、设置新建常见文件的默认编码格式,也就是文件保存的格式。二、设置新建其他文件的默认编码格式,即文件保存格式。三、单个文件查看编码格式(也就是打开文件用的编码格式)更改。这个方法没有更改文件的编码格式,只是告诉MyEclipse用何种编码格式进行解码。四、指定MyEclipse编写文件时页面内容数据编码格式,如html,或者jsp网页中提交表单前,用户输入...
2019-04-15 15:26:52
708
原创 MySQL问题汇总
MySQL问题汇总1. 问题:Client does not support authentication protocol requested by server1. 问题:Client does not support authentication protocol requested by server进入MySQL命令行,运行下面的命令方案1alter user 'root'@...
2019-04-15 14:33:12
169
原创 My Eclipse问题汇总
Java Web问题汇总1. 问题:The import javax.servlet cannot be resolved1. 问题:The import javax.servlet cannot be resolved方案1:在项目还没有导入的时候,选择target runtime为“你的运行时tomcat”,如图:方案二:如果项目已经导入,在Eclipse/Myeclipse中,右击...
2019-04-15 14:24:47
556
原创 LLVM语言参考手册
LLVM语言参考手册1. 摘要(Abstract)2. 简介(Introduction)2.1 结构良好性(Well-Formedness)3. 标识符(Identifiers)4. 高级结构(High Level Structure)4.1 模块结构(Module Structure)4.2 链接类型(Linkage Types)4.3 调用约定(Calling Conventions)4.4 ...
2019-04-11 11:51:31
5468
2
原创 llvm得到annotations
原文问题我用一个新的表格更新了之前的问题。大家好,我有以下LLVM IR:@.str = private unnamed_addr constant [3 x i8] c"DS\00", section "llvm.metadata"@llvm.global.annotations = appending global [1 x { i8*, i8*, i8*, i32 }] [{ i8...
2019-04-04 12:13:13
1082
原创 Cppdepend
Cppdepend1. 简介2. 特性3. 通过LINQ查询(CQLinq)制定代码规则4. 参考资料5. 扩展链接1. 简介CppDepend是一个用于C/C++代码的静态分析工具。此工具支持大量代码度量,允许使用有向图和依赖关系矩阵可视化依赖关系。这些工具还执行代码基快照比较,以及架构和质量规则的验证。用户定义的规则可以使用LINQ查询编写。这种LINQ查询被称为CQLinq。该工具还附带...
2019-03-27 18:18:42
2318
原创 codeviz
codeviz1. 这些内容从何而来?2. README3. 简介4. 安装5. 脚本6. 为 genfull 生成 cdepn 文件7. 为 genfull 生成 nccout 文件8. 生成 full.graph9. 关于 full.graph 可能存在的问题10. 生成调用图10.1 gengraph -f alloc_pages10.2 gengraph -d 10 -f alloc_pa...
2019-03-27 17:54:11
2335
转载 使用 codeviz 绘制函数的调用图
使用 codeviz 绘制函数的调用图1. 简介2. 安装graphviz3. 安装codeviz1. 简介codeviz官网:https://github.com/petersenna/codevizcodeviz是一款分析C/C++源代码函数调用关系的工具,通过它可以生成函数调用关系图(call graph)。其基本原理是给gcc打个补丁,让gcc在编译每个源文件时,将其中的函数的调用关...
2019-03-27 16:22:31
1279
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人