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