免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 8547 | 回复: 23
打印 上一主题 下一主题

[C] 推荐一个轻量级的跨平台c开发库:TBOX [复制链接]

论坛徽章:
1
程序设计版块每日发帖之星
日期:2015-11-08 06:20:00
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-11-05 10:13 |只看该作者 |倒序浏览
本帖最后由 waruqi 于 2015-11-05 10:14 编辑

TBOX v1.5.0 发布,此版本更新内容如下:
更新

  • 重建整个编译架构,采用xmake跨平台自动构建工具进行构建。。
  • 优化.pkg的依赖包机制,支持依赖库和接口的自动检测,针对libc、libm优先使用自动检测到的系统库接口实现,如果当前平台没有实现则使用tbox的自己实现版本,使得最大化性能和跨平台性。。
  • 修复strlcpy等一些libc接口的实现bug
  • 增加跨平台环境变量操作接口
  • 完善和优化路径操作,增加相对路径、绝对路径的相互转换

简介
TBOX是一个用c语言实现的多平台开发库,支持windows、linux、mac、ios、android以及其他嵌入式系统。
针对各个平台,封装了统一的接口,简化了各类开发过程中常用操作,使你在开发过程中,更加关注实际应用的开发,而不是把时间浪费在琐碎的接口兼容性上面,并且充分利用了各个平台独有的一些特性进行优化。

代码和文档见:https //github.com/waruqi/tbox/wiki

流库
针对http、file、socket、data等流数据,实现统一接口进行读写,并且支持: 阻塞、非阻塞、异步 三种读写模式。 支持中间增加多层filter流进行流过滤,实现边读取,内部边进行解压、编码转换、加密等操作,极大的减少了内存使用。
主要提供以下特性:
  • stream:通用非阻塞流,用于一般的单独io处理。
  • async_stream:利用asio实现的纯异步流,基于回调模式,可同时处理大量并发io。
  • transfer:传输器,维护两路流的传输,对async_stream的使用进行更上层的封装,用其可以很方便的实现下载、上传、复制等io传输操作。
  • transfer_pool:传输池,基于asio,维护大量并发的传输,可以用于实现爬虫、批量下载等等。
  • static_stream:针对静态数据buffer优化的静态流,用于轻量快速的数据解析。

asio库
  • 支持reactor和proactor两种模型,针对不同平台,采用epoll/poll/select/kqueue/iocp接口,最大化异步操作的性能。
  • 并且对http、ssl、dns也提供了纯异步模式的实现。基于此库完全可以很方便的写出一个高性能的小型服务器。

数据库
  • 统一并简化数据库操作接口,适配各种数据源,通过统一的url来自动连接打开支持的数据库,数据的枚举采用迭代器模型。
  • 目前支持sqlite3以及mysql两种关系型数据库,也可自定义扩展使用其他关系型数据库。

xml库
  • 针对xml提供DOM和SAX两种解析模式,SAX方式采用外部迭代模式,灵活性和性能更高,并且可以选择指定路径,进行解析。
  • 解析过程完全基于stream,所以是高度流化的,可以实现边下载、边解压、边转码、边解析一条龙服务,使用较低的内存也可以解析大规模数据。
  • 提供xml writer以支持对xml生成

内存库
  • 参考linux内核内存管理机制的实现,并对其进行各种改造和优化,所实现的TBOX独有的一整套内存池管理架构。
  • 调试模式下,可以轻松检测并定位内存泄露、内存越界溢出、内存重叠覆盖等常见内存问题,并对整体内存的使用进行了统计和简要分析。
  • 针对大块数据、小块数据、字符串数据进行了充分的利用,避免了大量外部碎片和内部碎片的产生。分配操作进行了各种优化,96%的情况下,效率都是在O(1)。

容器库
  • 提供哈希、链表、数组、队列、堆栈、最小最大堆等常用容器。
  • 支持各种常用成员类型,在原有的容器期初上,其成员类型还可以完全自定义扩展。
  • 所有容器都支持迭代器操作。
  • 大部分容器都可以支持基于stream的序列化和反序列化操作。

算法库
  • 提供各种排序算法:冒泡排序、堆排序、快速排序、插入排序。
  • 提供各种查找算法:线性遍历、二分法搜索。
  • 提供各种遍历、删除、统计算法。
  • 以迭代器为接口,实现算法和容器的分离,类似stl,但是c实现的,更加轻量。

网络库
  • 实现http、cookies、dns解析与缓存、ipv4、url的封装。

数学运算库
  • 提供各种精度的定点运算支持
  • 提供随机数生成器

libc库
  • libc的一个轻量级实现,完全跨平台,并且针对不同架构进行了优化。
  • 支持大部分字符串、宽字符串操作。
  • 扩展字符串、宽字符串的各种大小写不敏感操作接口
  • 扩展memset_u16、memset_u32等接口,并对其进行高度优化,尤其适合图形渲染程序

libm库
  • libm部分接口的一个轻量级实现,以及对常用系统接口的封装。(目前只实现了部分,之后有时间会完全实现掉)
  • 扩展部分常用接口,增加对sqrt、log2等常用函数的整数版本计算,进行高度优化,不涉及浮点运算,适合嵌入式环境使用。

object库
  • 轻量级类apple的CoreFoundation库,支持object、dictionary、array、string、number、date、data等常用对象,并且可以方便扩展自定义对象的序列化。
  • 支持对xml、json、binary以及apple的plist(xplist/bplist)格式序列化和反序列化。 并且实现自有的binary序列化格式, 针对明文进行了简单的加密,在不影响性能的前提下,序列化后的大小比bplist节省30%。

平台库
  • 提供file、directory、socket、thread、time等常用系统接口
  • 提供atomic、atomic64接口
  • 提供高精度、低精度定时器
  • 提供高性能的线程池操作
  • 提供event、mutex、semaphore、spinlock等事件、互斥、信号量、自旋锁操作
  • 提供获取函数堆栈信息的接口,方便调试和错误定位
  • 提供跨平台动态库加载接口(如果系统支持的话)

压缩库
  • 支持zlib/zlibraw/gzip的压缩与解压(需要第三方zlib库支持)。

字符编码库
  • 支持utf8、utf16、gbk、gb2312、uc2、uc4 之间的互相转码,并且支持大小端格式。

实用工具库
  • 提供base64/32编解码、crc32、md5、sha等hash算法、日志输出、断言、url编解码

评分

参与人数 1信誉积分 +10 收起 理由
cokeboL + 10 赞一个!

查看全部评分

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:53:172015亚冠之水原三星
日期:2015-06-02 16:34:202015年亚冠纪念徽章
日期:2015-10-19 18:13:37程序设计版块每日发帖之星
日期:2015-11-08 06:20:00
2 [报告]
发表于 2015-11-05 10:49 |只看该作者
本帖最后由 xinglp 于 2015-11-05 12:21 编辑

这个文件是个二进制的啊,这是几个意思呢
xmake/tool/jcat/jcat_linux_x64
里面的其他二进制文件通过 http://www.virscan.org/ 查询都有报毒的情况
做人要厚道,不能在屎里下毒啊

论坛徽章:
1
程序设计版块每日发帖之星
日期:2015-09-23 06:20:00
3 [报告]
发表于 2015-11-05 11:24 |只看该作者

论坛徽章:
36
子鼠
日期:2013-08-28 22:23:29黄金圣斗士
日期:2015-12-01 11:37:51程序设计版块每日发帖之星
日期:2015-12-14 06:20:00CU十四周年纪念徽章
日期:2015-12-22 16:50:40IT运维版块每日发帖之星
日期:2016-01-25 06:20:0015-16赛季CBA联赛之深圳
日期:2016-01-27 10:31:172016猴年福章徽章
日期:2016-02-18 15:30:3415-16赛季CBA联赛之福建
日期:2016-04-07 11:25:2215-16赛季CBA联赛之青岛
日期:2016-04-29 18:02:5915-16赛季CBA联赛之北控
日期:2016-06-20 17:38:50技术图书徽章
日期:2016-07-19 13:54:03程序设计版块每日发帖之星
日期:2016-08-21 06:20:00
4 [报告]
发表于 2015-11-05 12:15 |只看该作者
楼主好人一生平安

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:53:172015亚冠之水原三星
日期:2015-06-02 16:34:202015年亚冠纪念徽章
日期:2015-10-19 18:13:37程序设计版块每日发帖之星
日期:2015-11-08 06:20:00
5 [报告]
发表于 2015-11-05 12:15 |只看该作者
xmake/tool/jcat 下面有些二进制文件,还都挺大的啊,不知道里面有些啥。
这样不能安装xmake也就不能愉快的编译tbox了,也就不能好好玩耍了。
我还是先看看代码吧

论坛徽章:
1
程序设计版块每日发帖之星
日期:2015-11-08 06:20:00
6 [报告]
发表于 2015-11-05 14:18 |只看该作者
回复 2# xinglp


   这个是解析json的一个工具,配置xmake编译用的,绝对没有毒,源码在tbox/src/demo/object/jcat.c,如果不放心的话,你可以用ida反编译看看。。

论坛徽章:
1
程序设计版块每日发帖之星
日期:2015-11-08 06:20:00
7 [报告]
发表于 2015-11-05 14:24 |只看该作者
回复 2# xinglp

我刚扫了下,没有病毒哦。。

   VirSCAN.org Scanned Report :Scanned time   : 2015-11-05 14:19:16
Scanner results: 0%的杀软(0/39)报告发现病毒
File Name      : jcat_linux_x64
File Size      : 2099960 byte
File Type      : application/x-executable
MD5            : aead3a562bf5b3c8c29bd68b4b4961a9
SHA1           : 39202ed064a239c77d0f89cb33185e7a5cb3c3fd
Online report  : http //r.virscan.org/report/19a7aacd8333dc706d37cfbf03ac45a7

Scanner        Engine Ver      Sig Ver           Sig Date    Time   Scan result
ANTIVIR        1.9.2.0        1.9.159.0         7.12.24.38     15   没有发现病毒            
AVAST!         151104-0       4.7.4             2015-11-04     25   没有发现病毒            
AVG            2109/10414     10.0.1405         2015-10-30     1    没有发现病毒            
ArcaVir        1.0            2011              2014-05-30     9    没有发现病毒            
Authentium     4.6.5          5.3.14            2013-12-01     1    没有发现病毒            
Baidu Antivirus2.0.1.0        4.1.3.52192       2.0.1.0        3    没有发现病毒            
Bitdefender    7.58879        7.90123           2015-01-16     1    没有发现病毒            
ClamAV         21037          0.97.5            2015-11-03     1    没有发现病毒            
Comodo         15023          5.1               2015-08-01     3    没有发现病毒            
Dr.Web         5.0.2.3300     5.0.1.1           2015-10-20     34   没有发现病毒            
F-PROT         4.6.2.117      6.5.1.5418        2015-11-02     1    没有发现病毒            
F-Secure       2015-08-01-02  9.13              2015-08-01     1    没有发现病毒            
Fortinet       29.190, 29.190,5.1.158           2015-11-03     1    没有发现病毒            
GData          24.3819        24.3819           2014-08-29     7    没有发现病毒            
IKARUS         1.06.01        V1.32.31.0        2015-11-02     15   没有发现病毒            
NOD32          1777           3.0.21            2015-06-12     1    没有发现病毒            
QQ手机       1.0.0.0        1.0.0.0           2015-11-03     2    没有发现病毒            
Quickheal      14.00          14.00             2014-06-14     2    没有发现病毒            
SOPHOS         5.17           3.60.0            2015-08-01     7    没有发现病毒            
Sunbelt        3.9.2589.2     3.9.2589.2        2014-06-13     1    没有发现病毒            
TheHacker      6.8.0.5        6.8.0.5           2014-06-12     1    没有发现病毒            
Vba32          3.12.26.4      3.12.26.4         2015-11-02     4    没有发现病毒            
ViRobot        2.73           2.73              2015-01-30     1    没有发现病毒            
VirusBuster    15.0.985.0     5.5.2.13          2014-12-05     15   没有发现病毒            
a-squared      9.0.0.4157     9.0.0.4157        2014-07-30     1    没有发现病毒            
nProtect       9.9.9          9.9.9             2013-12-27     3    没有发现病毒            
卡巴斯基   5.5.33         5.5.33            2014-04-01     20   没有发现病毒            
奇虎360      1.0.1          1.0.1             1.0.1          6    没有发现病毒            
安博士V3    9.9.9          9.9.9             2013-05-28     3    没有发现病毒            
安天         AVL SDK 3.0    2014112615531100  2014-11-26     1    没有发现病毒            
江民杀毒   16.0.100       1.0.0.0           2015-07-30     16   没有发现病毒            
熊猫卫士   9.05.01        9.05.01           2014-06-15     3    没有发现病毒            
瑞星         25.17.00.04    25.17.00.04       2014-06-02     1    没有发现病毒            
百度杀毒   1.0            1.0               2014-04-02     1    没有发现病毒            
费尔         17.47.17308    1.0.2.2108        2014-06-16     6    没有发现病毒            
赛门铁克   20151101.001   1.3.0.24          2015-11-01     1    没有发现病毒            
趋势科技   12.126.07      9.500-1005        2015-11-02     2    没有发现病毒            
迈克菲      7879           5400.1158         2015-07-31     8    没有发现病毒            
金山毒霸   2.1            2.1               2013-09-22     2    没有发现病毒            

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:53:172015亚冠之水原三星
日期:2015-06-02 16:34:202015年亚冠纪念徽章
日期:2015-10-19 18:13:37程序设计版块每日发帖之星
日期:2015-11-08 06:20:00
8 [报告]
发表于 2015-11-05 14:38 |只看该作者
回复 7# waruqi

DTREG.exe
http://r.virscan.org/e3c66e28ace8ade83b1a9263ae0fb95f
Scanner results:10%Scanner(s) (4/37)found malware!

jcat_windows_x86.exe
http://r.virscan.org/report/b2e665a52d87a5e5f454c46493183aeb
Scanner results:2%Scanner(s) (1/39)found malware!        Behavior

发布的源码里面就不该有预编译的东西

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:53:172015亚冠之水原三星
日期:2015-06-02 16:34:202015年亚冠纪念徽章
日期:2015-10-19 18:13:37程序设计版块每日发帖之星
日期:2015-11-08 06:20:00
9 [报告]
发表于 2015-11-05 15:52 |只看该作者
本帖最后由 xinglp 于 2015-11-05 15:52 编辑

xmake 编译没过, 没联网的单机 gcc-5.2.0 Make-4.1 lua-5.3.1

  1. # ./install
  2. compiling xmake-core...
  3. make[3]: *** [demo.b] Error 1
  4. make[2]: *** [SUB_PROS_../demo_all] Error 2
  5. make[1]: *** [SUB_PROS_xmake_all] Error 2
  6. make: *** [all] Error 2
  7. output xmake
  8. ../xmake/libxmaker.a(machine.o): In function `xm_machine_init':
  9. machine.c:(.text+0x2): undefined reference to `tb_pool'
  10. machine.c:(.text+0xf): undefined reference to `tb_pool_malloc0_'
  11. machine.c:(.text+0x20): undefined reference to `luaL_newstate'
  12. machine.c:(.text+0x34): undefined reference to `luaL_openlibs'
  13. machine.c:(.text+0x46): undefined reference to `luaL_register'
  14. machine.c:(.text+0x58): undefined reference to `luaL_register'
  15. machine.c:(.text+0x6a): undefined reference to `luaL_register'
  16. machine.c:(.text+0x77): undefined reference to `lua_pushstring'
  17. machine.c:(.text+0x89): undefined reference to `lua_setfield'
  18. machine.c:(.text+0x96): undefined reference to `lua_pushstring'
  19. machine.c:(.text+0xa8): undefined reference to `lua_setfield'
  20. machine.c:(.text+0xb5): undefined reference to `lua_pushstring'
  21. machine.c:(.text+0xc7): undefined reference to `lua_setfield'
  22. machine.c:(.text+0xd3): undefined reference to `lua_createtable'
  23. machine.c:(.text+0xe5): undefined reference to `lua_setfield'
  24. machine.c:(.text+0xf8): undefined reference to `tb_pool'
  25. machine.c:(.text+0x105): undefined reference to `tb_pool_free_'
  26. ../xmake/libxmaker.a(machine.o): In function `xm_machine_exit':
  27. machine.c:(.text+0x122): undefined reference to `lua_close'
  28. machine.c:(.text+0x12e): undefined reference to `tb_pool'
  29. ../xmake/libxmaker.a(machine.o): In function `xm_machine_main':
  30. machine.c:(.text+0x194): undefined reference to `lua_createtable'
  31. machine.c:(.text+0x1bc): undefined reference to `lua_pushstring'
  32. machine.c:(.text+0x1c9): undefined reference to `lua_objlen'
  33. machine.c:(.text+0x1d9): undefined reference to `lua_rawseti'
  34. machine.c:(.text+0x1fb): undefined reference to `lua_setfield'
  35. machine.c:(.text+0x22a): undefined reference to `tb_environment_get_one'
  36. machine.c:(.text+0x243): undefined reference to `tb_path_absolute'
  37. machine.c:(.text+0x253): undefined reference to `lua_pushstring'
  38. machine.c:(.text+0x265): undefined reference to `lua_setfield'
  39. machine.c:(.text+0x289): undefined reference to `tb_environment_get_one'
  40. machine.c:(.text+0x29a): undefined reference to `tb_printf'
  41. machine.c:(.text+0x2c9): undefined reference to `tb_directory_current'
  42. machine.c:(.text+0x2de): undefined reference to `tb_printf'
  43. machine.c:(.text+0x309): undefined reference to `tb_path_absolute'
  44. machine.c:(.text+0x319): undefined reference to `lua_pushstring'
  45. machine.c:(.text+0x32b): undefined reference to `lua_setfield'
  46. machine.c:(.text+0x338): undefined reference to `tb_strcat'
  47. machine.c:(.text+0x342): undefined reference to `tb_file_info'
  48. machine.c:(.text+0x355): undefined reference to `luaL_loadfile'
  49. machine.c:(.text+0x36e): undefined reference to `lua_pcall'
  50. machine.c:(.text+0x384): undefined reference to `lua_getfield'
  51. machine.c:(.text+0x396): undefined reference to `lua_getfield'
  52. machine.c:(.text+0x3a8): undefined reference to `lua_getfield'
  53. machine.c:(.text+0x3bc): undefined reference to `lua_pcall'
  54. machine.c:(.text+0x3cd): undefined reference to `lua_tonumber'
  55. machine.c:(.text+0x3f3): undefined reference to `lua_tolstring'
  56. machine.c:(.text+0x402): undefined reference to `tb_printf'
  57. machine.c:(.text+0x413): undefined reference to `tb_printf'
  58. ../xmake/libxmaker.a(machine.o): In function `xm_machine_exit':
  59. machine.c:(.text+0x13a): undefined reference to `tb_pool_free_'
  60. ../xmake/libxmaker.a(chdir.o): In function `xm_os_chdir':
  61. chdir.c:(.text+0x11): undefined reference to `luaL_checklstring'
  62. chdir.c:(.text+0x1e): undefined reference to `tb_directory_current_set'
  63. chdir.c:(.text+0x28): undefined reference to `lua_pushboolean'
  64. ../xmake/libxmaker.a(cpdir.o): In function `xm_os_cpdir':
  65. cpdir.c:(.text+0x16): undefined reference to `luaL_checklstring'
  66. cpdir.c:(.text+0x28): undefined reference to `luaL_checklstring'
  67. cpdir.c:(.text+0x3d): undefined reference to `tb_directory_copy'
  68. cpdir.c:(.text+0x47): undefined reference to `lua_pushboolean'
  69. ../xmake/libxmaker.a(cpfile.o): In function `xm_os_cpfile':
  70. cpfile.c:(.text+0x16): undefined reference to `luaL_checklstring'
  71. cpfile.c:(.text+0x28): undefined reference to `luaL_checklstring'
  72. cpfile.c:(.text+0x3d): undefined reference to `tb_file_copy'
  73. cpfile.c:(.text+0x47): undefined reference to `lua_pushboolean'
  74. ../xmake/libxmaker.a(curdir.o): In function `xm_os_curdir':
  75. curdir.c:(.text+0x1b): undefined reference to `tb_directory_current'
  76. curdir.c:(.text+0x28): undefined reference to `lua_pushnil'
  77. curdir.c:(.text+0x47): undefined reference to `lua_pushstring'
  78. ../xmake/libxmaker.a(exists.o): In function `xm_os_exists':
  79. exists.c:(.text+0x11): undefined reference to `luaL_checklstring'
  80. exists.c:(.text+0x20): undefined reference to `tb_file_info'
  81. exists.c:(.text+0x2a): undefined reference to `lua_pushboolean'
  82. ../xmake/libxmaker.a(find.o): In function `xm_os_find_walk':
  83. find.c:(.text+0x88): undefined reference to `lua_getfield'
  84. find.c:(.text+0x93): undefined reference to `lua_pushstring'
  85. find.c:(.text+0x9e): undefined reference to `lua_pushstring'
  86. find.c:(.text+0xb2): undefined reference to `lua_pcall'
  87. find.c:(.text+0xca): undefined reference to `lua_isstring'
  88. find.c:(.text+0xdd): undefined reference to `lua_tolstring'
  89. find.c:(.text+0xe8): undefined reference to `tb_strcmp'
  90. find.c:(.text+0xfa): undefined reference to `lua_type'
  91. find.c:(.text+0x11e): undefined reference to `lua_rawseti'
  92. find.c:(.text+0x139): undefined reference to `lua_settop'
  93. find.c:(.text+0x153): undefined reference to `lua_tolstring'
  94. find.c:(.text+0x16b): undefined reference to `tb_printf'
  95. find.c:(.text+0x18b): undefined reference to `luaL_checklstring'
  96. find.c:(.text+0x1b9): undefined reference to `lua_objlen'
  97. find.c:(.text+0x1e1): undefined reference to `lua_getfield'
  98. find.c:(.text+0x1ee): undefined reference to `lua_pushstring'
  99. find.c:(.text+0x1f9): undefined reference to `lua_pushstring'
  100. find.c:(.text+0x20d): undefined reference to `lua_pcall'
  101. find.c:(.text+0x225): undefined reference to `lua_isstring'
  102. find.c:(.text+0x23c): undefined reference to `lua_settop'
  103. find.c:(.text+0x249): undefined reference to `lua_settop'
  104. find.c:(.text+0x26b): undefined reference to `lua_rawgeti'
  105. find.c:(.text+0x27a): undefined reference to `lua_tolstring'
  106. find.c:(.text+0x2a0): undefined reference to `lua_tolstring'
  107. find.c:(.text+0x2b0): undefined reference to `tb_strcmp'
  108. find.c:(.text+0x2cf): undefined reference to `lua_tolstring'
  109. find.c:(.text+0x2e6): undefined reference to `tb_printf'
  110. ../xmake/libxmaker.a(find.o): In function `xm_os_find':
  111. find.c:(.text+0x310): undefined reference to `luaL_checklstring'
  112. find.c:(.text+0x32b): undefined reference to `luaL_checklstring'
  113. find.c:(.text+0x344): undefined reference to `lua_toboolean'
  114. find.c:(.text+0x354): undefined reference to `lua_toboolean'
  115. find.c:(.text+0x363): undefined reference to `lua_createtable'
  116. find.c:(.text+0x375): undefined reference to `lua_getfield'
  117. find.c:(.text+0x3a4): undefined reference to `tb_directory_walk'
  118. find.c:(.text+0x3b1): undefined reference to `lua_settop'
  119. find.c:(.text+0x3be): undefined reference to `lua_pushinteger'
  120. ../xmake/libxmaker.a(isdir.o): In function `xm_os_isdir':
  121. isdir.c:(.text+0x15): undefined reference to `luaL_checklstring'
  122. isdir.c:(.text+0x48): undefined reference to `tb_file_info'
  123. isdir.c:(.text+0x56): undefined reference to `lua_pushboolean'
  124. ../xmake/libxmaker.a(isfile.o): In function `xm_os_isfile':
  125. isfile.c:(.text+0x15): undefined reference to `luaL_checklstring'
  126. isfile.c:(.text+0x48): undefined reference to `tb_file_info'
  127. isfile.c:(.text+0x56): undefined reference to `lua_pushboolean'
  128. ../xmake/libxmaker.a(mkdir.o): In function `xm_os_mkdir':
  129. mkdir.c:(.text+0x11): undefined reference to `luaL_checklstring'
  130. mkdir.c:(.text+0x1e): undefined reference to `tb_directory_create'
  131. mkdir.c:(.text+0x28): undefined reference to `lua_pushboolean'
  132. ../xmake/libxmaker.a(mtime.o): In function `xm_os_mtime':
  133. mtime.c:(.text+0x15): undefined reference to `luaL_checklstring'
  134. mtime.c:(.text+0x48): undefined reference to `tb_file_info'
  135. mtime.c:(.text+0x5d): undefined reference to `lua_pushinteger'
  136. mtime.c:(.text+0x89): undefined reference to `lua_pushinteger'
  137. ../xmake/libxmaker.a(rename.o): In function `xm_os_rename':
  138. rename.c:(.text+0x16): undefined reference to `luaL_checklstring'
  139. rename.c:(.text+0x28): undefined reference to `luaL_checklstring'
  140. rename.c:(.text+0x3d): undefined reference to `tb_file_rename'
  141. rename.c:(.text+0x47): undefined reference to `lua_pushboolean'
  142. ../xmake/libxmaker.a(rmdir.o): In function `xm_os_rmdir':
  143. rmdir.c:(.text+0x11): undefined reference to `luaL_checklstring'
  144. rmdir.c:(.text+0x1e): undefined reference to `tb_directory_remove'
  145. rmdir.c:(.text+0x28): undefined reference to `lua_pushboolean'
  146. ../xmake/libxmaker.a(rmfile.o): In function `xm_os_rmfile':
  147. rmfile.c:(.text+0x11): undefined reference to `luaL_checklstring'
  148. rmfile.c:(.text+0x1e): undefined reference to `tb_file_remove'
  149. rmfile.c:(.text+0x28): undefined reference to `lua_pushboolean'
  150. ../xmake/libxmaker.a(setenv.o): In function `xm_os_setenv':
  151. setenv.c:(.text+0x33): undefined reference to `luaL_checklstring'
  152. setenv.c:(.text+0x4d): undefined reference to `luaL_checklstring'
  153. setenv.c:(.text+0x6f): undefined reference to `tb_strchr'
  154. setenv.c:(.text+0x8a): undefined reference to `tb_element_str'
  155. setenv.c:(.text+0x100): undefined reference to `tb_bloom_filter_init'
  156. setenv.c:(.text+0x10c): undefined reference to `tb_environment_init'
  157. setenv.c:(.text+0x146): undefined reference to `tb_strchr'
  158. setenv.c:(.text+0x17e): undefined reference to `tb_strncpy'
  159. setenv.c:(.text+0x197): undefined reference to `tb_bloom_filter_set'
  160. setenv.c:(.text+0x1b1): undefined reference to `tb_environment_set'
  161. setenv.c:(.text+0x1c9): undefined reference to `tb_environment_save'
  162. setenv.c:(.text+0x1d5): undefined reference to `lua_pushboolean'
  163. setenv.c:(.text+0x1dd): undefined reference to `tb_environment_exit'
  164. setenv.c:(.text+0x1ee): undefined reference to `tb_bloom_filter_exit'
  165. setenv.c:(.text+0x22a): undefined reference to `tb_strncpy'
  166. setenv.c:(.text+0x24a): undefined reference to `tb_environment_set'
  167. setenv.c:(.text+0x264): undefined reference to `tb_strchr'
  168. setenv.c:(.text+0x289): undefined reference to `tb_environment_set_one'
  169. setenv.c:(.text+0x295): undefined reference to `lua_pushboolean'
  170. ../xmake/libxmaker.a(strerror.o): In function `xm_os_strerror':
  171. strerror.c:(.text+0x1c): undefined reference to `lua_pushstring'
  172. ../xmake/libxmaker.a(tmpdir.o): In function `xm_os_tmpdir':
  173. tmpdir.c:(.text+0x1b): undefined reference to `tb_directory_temporary'
  174. tmpdir.c:(.text+0x28): undefined reference to `lua_pushnil'
  175. tmpdir.c:(.text+0x47): undefined reference to `lua_pushstring'
  176. ../xmake/libxmaker.a(absolute.o): In function `xm_path_absolute':
  177. absolute.c:(.text+0x19): undefined reference to `luaL_checklstring'
  178. absolute.c:(.text+0x34): undefined reference to `luaL_optlstring'
  179. absolute.c:(.text+0x47): undefined reference to `tb_path_absolute_to'
  180. absolute.c:(.text+0x52): undefined reference to `lua_pushstring'
  181. ../xmake/libxmaker.a(is_absolute.o): In function `xm_path_is_absolute':
  182. is_absolute.c:(.text+0x11): undefined reference to `luaL_checklstring'
  183. is_absolute.c:(.text+0x1e): undefined reference to `tb_path_is_absolute'
  184. is_absolute.c:(.text+0x28): undefined reference to `lua_pushboolean'
  185. ../xmake/libxmaker.a(relative.o): In function `xm_path_relative':
  186. relative.c:(.text+0x19): undefined reference to `luaL_checklstring'
  187. relative.c:(.text+0x34): undefined reference to `luaL_optlstring'
  188. relative.c:(.text+0x47): undefined reference to `tb_path_relative_to'
  189. relative.c:(.text+0x52): undefined reference to `lua_pushstring'
  190. ../xmake/libxmaker.a(translate.o): In function `xm_path_translate':
  191. translate.c:(.text+0x19): undefined reference to `luaL_checklstring'
  192. translate.c:(.text+0x2e): undefined reference to `tb_strlcpy'
  193. translate.c:(.text+0x3d): undefined reference to `tb_path_translate'
  194. translate.c:(.text+0x51): undefined reference to `lua_pushstring'
  195. ../xmake/libxmaker.a(endswith.o): In function `xm_string_endswith':
  196. endswith.c:(.text+0x2e): undefined reference to `luaL_checklstring'
  197. endswith.c:(.text+0x43): undefined reference to `luaL_checklstring'
  198. endswith.c:(.text+0x6e): undefined reference to `tb_strcmp'
  199. endswith.c:(.text+0x7f): undefined reference to `lua_pushboolean'
  200. ../xmake/libxmaker.a(startswith.o): In function `xm_string_startswith':
  201. startswith.c:(.text+0x1f): undefined reference to `luaL_checklstring'
  202. startswith.c:(.text+0x34): undefined reference to `luaL_checklstring'
  203. startswith.c:(.text+0x4e): undefined reference to `tb_strncmp'
  204. startswith.c:(.text+0x5f): undefined reference to `lua_pushboolean'
  205. ../xmake/libxmaker.a(xmake.o): In function `xm_init_':
  206. xmake.c:(.text+0x25): undefined reference to `tb_version'
  207. xmake.c:(.text+0x2d): undefined reference to `tb_used_ptr'
  208. xmake.c:(.text+0x44): undefined reference to `tb_init_'
  209. ../xmake/libxmaker.a(xmake.o): In function `xm_version':
  210. xmake.c:(.text+0x8a): undefined reference to `tb_used_ptr'
  211. xmake.c:(.text+0xb2): undefined reference to `tb_s10tou64'
  212. ../xmake/libxmaker.a(xmake.o): In function `xm_exit':
  213. xmake.c:(.text+0x71): undefined reference to `tb_exit'
  214. collect2: error: ld returned 1 exit status
复制代码

论坛徽章:
1
程序设计版块每日发帖之星
日期:2015-11-08 06:20:00
10 [报告]
发表于 2015-11-05 16:25 |只看该作者
回复 9# xinglp


   windows? 还是linux? windows的话 运行install.bat ,linux/mac系统运行./install应该可以通过的,不需要联网
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP