2016-02-04 ruki
xmake的add_files接口不仅可以添加源代码文件进行编译,还可以直接添加.o/obj对象文件、以及.a/lib的库文件到编译目标中,这个跟add_links是有区别的 add_links:只能添加链接,例如: -lxxxx 这种,链接的目标也只能是可执行程序、动态库,而且只会链接需要的代码进去 add_files:是直接将静态库中的所有对象文件,解包、重新打包到新的target中,这个target可以是新的静态库,也可以是可执行程序、或者动态库 例如: ```lua target("test") -- 生成静态库:libtest.a set_kind("static") -- 添 继续阅读 »
2016-08-03 ruki
如果你想在同一个target上既编译静态库,又能编译动态库,那么稍微修改下 xmale.lua就行了: ```lua add_target("test") -- 设置编译target的类型,之前是:static/shared,现在改成动态的 set_kind("$(kind)") -- 添加文件 add_files(*.c) ``` 好了,现在默认编译的时候,会生成静态库:libtest.a 如果你想生成动态库,只需要执行: ```bash 简写 xmake f -k shared 或者 xmake config --kind=shared 编译 xmake ``` 继续阅读 »
2016-04-25 zzyhappyzzy
iOS
说明 库是程序代码的合集,常见的有开源库和闭源库,其中.a就是闭源库(无法看到具体实现方法),而Github上的代码基本都是开源库。静态库执行时会被复制到可执行文件中,多次调用则会出现冗余拷贝,不建议使用静态库。可以使用动态库.dylib(动态库貌似通不过appstore审核)或者源码。 生成.a文件 一个.a文件,要想兼容各种不同的cpu架构,需要包含各种指令集(amrv7/armv7s/arm64/i386/x86_64等)。常用的查看和合并.a文件的指令lipo。 继续阅读 »
2018-04-27 LEo
本文主要介绍go语言静态库的编译和使用方法,以windows平台为例,linux平台步骤一样,具体环境如下: ``` echo %GOPATH% E:\share\git\go_practice\ echo %GOROOT% C:\Go\ 继续阅读 »
2017-09-03 Piasy
前面我们分析 WebRTC P2P 连接过程时,在 C++ 代码的世界里徜徉了那么久,其中有各种各样的功能模块,难道大家看着不心动?反正我是很想把它们剥离出来用的,第一个拿来开刀的当然就是 P2P 模块了。 继续阅读 »
2017-01-07 ruki
最近给xmake增加了一个新特性,对于一份工程源码,可以不用编写makefile,也不用编写各种make相关的工程描述文件(例如:xmake.lua,makefile.am, cmakelist.txt等) xmake就可以直接编译他们,这是如何做到的呢,简单来说下实现原理: 首先扫描当前目录下,xmake所以支持的所有源代码文件 分析代码,检测哪些代码拥有main入口函数 所有没有main入口的代码编译成静态库 带有main入口的代码,编译成可执行程序,同时链接其他静态库程序 这种代码扫描和智能编译,非常简单,目前xmake还不支持多级目录扫描,只对单级目录的代码进行扫描编译。。 开源代码的移植和编译 虽然这种方式,并不是 继续阅读 »
2016-07-18 ruki
xmake默认情况下是不会去生成pdb文件,就算是debug编译,启用了调试符号: lua set_symbols("debug") 也是不会生成额外的pdb文件,它会把所有调试符号内置到程序里面,如果要独立生成pdb文件,可以对xmake.lua进行如下修改: ```lua -- 先禁用内置的调试符号开关 --set_symbols("debug") -- 静态库目标 target("test") set_kind("static") -- 仅针对windows平台 if is_plat("windows") then -- 启用pdb生成 add_cxflags("-ZI", "-Fd$(bui 继续阅读 »
2016-12-05 Meng Lei
Travis CI 简介 Travis CI是一个分步式的开源持续构建项目,只需要通过配置.travis.yml文件,即可将Github上的项目进行持续的编译、测试等工作,以便尽早发现错误,尽早改正,并减少人工的重复劳动。同时,也可以通过travis ci完成很多有趣的工作。 通过Travis CI自动发布hexo博客 我们建立的hexo博客,每次写完一篇,都要执行 hexo generate 和 hexo deploy 等命令,将博客生成的HTML静态文件部署到Github的版本库上,同时,也会将源代码保存一份到Github的另一个分支,每次都要执行很多重复操作,在此,我们可以通过Travis CI来帮我们完成这些重复劳动。 继续阅读 »
2018-09-10 浩阳
content {:toc} 简介 lottie 是一个可以轻易的给各种 native app 添加高质量动画的类库。可以在 iOS、Android 和 React Native 实时渲染 After Effects 动画,就像使用静态图片一样容易。上图即为 lottie 的 logo。 简单的说,lottie 动画制作的流程是,通过 Bodymovin 扩展将 AE 动画导出为 json 数据,然后再将这个 json 渲染在客户端或者 web 端。如下图: 继续阅读 »