2016-06-27 zzyhappyzzy
注意 本文转载自http://nshipster.cn/clang-diagnostics/ 概要 诊断结合了逻辑与分析来得出一个结论。这是最纯粹的科学和工程学,也是人类最有力的推理。 more 在医学界,诊断是通过实验室样本做后盾的本能来判断。而对于工业制造,则是通过在统计和方向都等同应用来诊断产品故障。 对于我们开发者来说,我们通过代码通知后续代码的生产,创建了一个在过去半个世纪里呈几何级数发展的技术的正反馈循环。尤其对于我们的 Objective-C 开发者来说,最有效的诊断来自 Clang。 Clang 是 C / Objective-C 的前端的 LLVM 编译器。它对 Objective-C 的语义和语法有 继续阅读 »
2017-08-31 ALEX LIN
更新日志 分析工具:clang ``` clang -rewrite-objc test.m // UIKit clang -x objective-c -rewrite-objc -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk xxxxx.m ``` block 的数据结构定义 对应的结构体定义如下: ``` struct Block_descriptor { unsigned long int reserved 继续阅读 »
2015-05-07 summer
最近在学习Tkinter的知识,这使用图片时发现不能正常显示,google一下,发现Tkinter默认支持gif格式,使用其他格式的文件需要安装PIL模块。不过在安装过程中出现了一下错误问题: ``` 1 warning generated. clang: warning: -framework Tcl: 'linker' input unused clang: warning: -framework Tk: 'linker' input unused In file included from _imagingtk.c:19: /Applications/Xcode.app/Contents/Developer/Platform 继续阅读 »
2016-07-06 ruki
主页 源码 更新内容 此版本,主要修复一些bug和稳定性改善 改进 修改安装和卸载的action处理 更新工程模板 增强函数检测 Bugs修复 #7: 修复用模板创建工程后,target名不对问题:'[targetname]' #9: 修复clang不支持c++11的问题 修复api作用域泄露问题 修复在windows上的一些路径问题 修复检测宏函数失败问题 修复检测工具链失败问题 修复windows上编译android版本失败 继续阅读 »
2016-09-30 ruki
原子操作,线程间交互数据最细粒度的同步操作,它可以保证线程间读写某个数值的原子性。 由于不需要加重量级的互斥锁进行同步,因此非常轻量,而且也不需要在内核间来回切换调度,效率是非常高的。。 那如何使用原子操作了,各个平台下都有相关api提供了支持,并且向gcc、clang这些编译器,也提供了编译器级的__builtin接口进行支持 windows的Interlockedxxx和Interlockedxxx64系列api macosx的OSAtomicXXX系列api gcc的__sync_val_compare_and_swap和__sync_val_compare_and_swap_8等__builtin接口 x86和x86_ 继续阅读 »
2016-09-28 ruki
线程局部存储(Thread Local Storage,TLS)主要用于在多线程中,存储和维护一些线程相关的数据,存储的数据会被关联到当前线程中去,并不需要锁来维护。。 因此也没有多线程间资源竞争问题,那如何去实现TLS存储呢,主要有以下几种方式: gcc和clang的__thread修饰符 windows下msvc的__declspec(thread)修饰符 pthread库pthread_setspecific和pthread_getspecific接口 windows下的TlsSetValue和TlsGetValue thread和declspec(thread)的使用 其中thread和declspec(thread) 继续阅读 »
2017-07-31 ruki
最近为了给xmake实现预编译头文件的支持,研究了下各大主流编译器处理预编译头的机制以及之间的一些差异。 现在的大部分c/c++编译器都是支持预编译头的,例如:gcc,clang,msvc等,用于优化c++代码的编译速度,毕竟c++的头文件如果包含了模板定义的话,编译速度是很慢的, 如果能够吧大部分通用的头文件放置在一个header.h中,在其他源码编译之前预先对其进行编译,之后的代码都能重用这部分预编译头,就可以极大程度上减少频繁的头文件冗余编译。 但是不同编译器对它的支持力度和处理方式,还是有很大差异的,并不是非常通用,在xmake中封装成统一的接口和使用方式,还是费了很大的功夫才搞定。 msvc的预编译头处理 预编译头 继续阅读 »
2016-11-04 ALEX LIN
更新日志 英文原文出处:http://amattn.com/p/arc_best_practices.html 一些可选背景故事: 相关文档:迁移至ARC版本说明 Mike Ash 在他的 Friday Q&As 也有一篇关于ARC的文章。 深入的技术文档在 LLVM 项目的 CLANG 网站上。 假设你正在使用 iOS 5 或者更高版本,而不是 4。实际上,弱指针是 ARC 中的一个重要工具,所以我不建议在 iOS 4 中使用 ARC。 更新注意事项 这份文件自从2011年发布以来,一直在不断更新。最后一次微小的修订是在 2013年发布 iOS 7。 继续阅读 »
2018-09-06 石头人m
牛客网编程练习-剑指offer,语言:c++11(clang++ 3.9)。 1.【数组】二维数组中的查找 继续阅读 »
2016-07-06 ruki
Website Sources Changelog Changes Change install and uninstall actions Update templates Improve to check function Bugs fixed #7: Fix create project bug with '[targetname]' #9: Support clang with c++11 Fix api scope leaks bug Fix path bug for windows Fix check function bug Fix check toolchains failed Fix compile fa 继续阅读 »