tbox源码剖析--01

本文详细介绍了如何在不同平台上编译TBox源码,包括默认主机、mingw、iOS、Android以及跨平台编译,还提供了Makefile和main.c的示例。
摘要由CSDN通过智能技术生成

tbox源码编译

源码下载

https://gitee.com/tboox/tbox.git

源码编译

# 默认直接编译当前主机平台
$ cd ./tbox
$ xmake

# 编译mingw平台
$ cd ./tbox
$ xmake f -p mingw --sdk=/home/mingwsdk
$ xmake

# 编译iphoneos平台
$ cd ./tbox
$ xmake f -p iphoneos
$ xmake

# 编译android平台
$ cd ./tbox
$ xmake f -p android --ndk=xxxxx
$ xmake

# 交叉编译
$ cd ./tbox
$ xmake f -p linux --sdk=/home/sdk #--bin=/home/sdk/bin
$ xmake

# 使用 xmake.sh 编译
$ ./configure --prefix=$PWD/install
$ make install

例子

工程目录

├── Makefile
├── main.c
└── tbox
    ├── include
    └── lib

其中
main.c

#include "tbox/tbox.h"

#define TB_TRACE_MODULE_NAME "tbox.main"

int main(int argc, char** argv)
{
    /* 初始化tbox库
     *
     * @param priv      平台所需要的私有数据,目前针对android,需要传入JNIEnv* env,其他平台默认传tb_null
     * @param data      设置内存池需要的数据地址,默认直接使用系统内存,所以传tb_null就行了
     * @param size      设置内存池需要的数据大小
     */
    if (!tb_init(tb_null, tb_null))
        return 0;

    // tb_trace_mode_set(TB_TRACE_MODE_FILE);
    // tb_trace_file_set_path("log.txt", tb_false);

    // trace
    tb_trace_i("hello tbox");

    // 初始化一个维护大小写敏感字符串的vector容器,第一参数设置元素自动增长大小,这里使用0表示默认大小
    tb_vector_ref_t vector = tb_vector_init(0, tb_element_str(tb_true));
    if (vector) {
        // insert item
        tb_vector_insert_tail(vector, "hello");
        tb_vector_insert_tail(vector, "tbox");

        // dump all items
        tb_for_all(tb_char_t const*, cstr, vector)
        {
            // trace
            tb_trace_i("%s", cstr);
        }

        // exit vector
        tb_vector_exit(vector);
    }

    // wait
    tb_getchar();

    // exit tbox
    tb_exit();
    return 0;
}

Makefile

# 编译器设置
CC = gcc
CFLAGS = -Wall -g

PWD := $(shell pwd)
# 头文件路径
CFLAGS += -I$(PWD)/tbox/include
# 库路径
LDFLAGS += -L$(PWD)/tbox/lib
# 链接的库文件(假设要链接名为 libtbox.a 的库)
LDLIBS += -ltbox -lm -lpthread

# 目标文件和依赖关系
TARGET = main
OBJS = main.o

# 默认目标(生成可执行文件)
$(TARGET): $(OBJS)
	$(CC) $(CFLAGS) $(LDFLAGS) $^ $(LDLIBS) -o $@

# 源文件依赖关系
main.o: main.c
	$(CC) $(CFLAGS) -c $< -o $@

# 清理生成的文件
clean:
	rm -f $(OBJS) $(TARGET)

run

make
./main 
[tbox.main]: hello tbox
[tbox.main]: hello
[tbox.main]: tbox
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

血_影

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值