Sqlite3通过Makefile编译成动态链接库

TARGET_LIB:=libsqlite3.so

LIBS  	:= -lpthread -ldl
CFLAGS  := -g -Wall -shared -fPIC -I. $(LIBS)
CC		:= mipsel-openwrt-linux-gcc #交叉编译下的编译路径
STRIP	:= mipsel-openwrt-linux-strip
OBJ		:= sqlite3.o

all: $(TARGET_LIB)

$(TARGET_LIB): $(OBJ)
	@echo -e "\033[32mBuilding $(TARGET_LIB) ...\033[0m"
	$(CC) $(CFLAGS) -o $(TARGET_LIB) $(OBJ)
	$(STRIP) $(TARGET_LIB)

install:
	cp $(TARGET_LIB) ../../lib/
	cp sqlite3.h ../../include/

clean:
	@echo -e "\033[32mCleaning $(TARGET_LIB) ...\033[0m"
	rm -rf *.o $(TARGET_LIB)

.PHONY: all clean install

Sqlite3通过Makefile编译成动态链接库

时间: 2024-10-07 12:29:56

Sqlite3通过Makefile编译成动态链接库的相关文章

Linux内核驱动将多个C文件编译成一个ko文件的方法——每个C文件里都有module_init与module_exit

以两个C文件为例: 将本该被分别编译成adc_device.ko和adc_driver.ko的adc_device.c.adc_driver.c编译成一个ko文件! 采用方法: 第一步.修改C文件 1.去掉adc_device.c文件里module_init(xxx).module_exit(yyy)中xxx.yyy 函数原型的关键字static 2.注销adc_device.c文件里module_init(xxx).module_exit(yyy)函数 3.在adc_driver.c文件里添加

[转载]GCC 编译使用动态链接库和静态链接库--及先后顺序----及环境变量设置总结

来自http://blog.csdn.net/benpaobagzb/article/details/51364005 GCC 编译使用动态链接库和静态链接库 1 库的分类 根据链接时期的不同,库又有静态库和动态库之分. 静态库是在链接阶段被链接的(好像是废话,但事实就是这样),所以生成的可执行文件就不受库的影响了,即使库被删除了,程序依然可以成功运行. 有别于静态库,动态库的链接是在程序执行的时候被链接的.所以,即使程序编译完,库仍须保留在系统上,以供程序运行时调用.(TODO:链接动态库时链

将安卓驱动编译成moudle开机后自动启动

假设我们写好了驱动程序:xxx.c,并且可以正常运行(驱动的init match probe等等都OK) 先看一下将驱动编译进内核的情况,主要关注以下几个文件: 驱动文件夹下的Makefile里有一句: obj-$(CONFIG_XXX) += xxx.o 驱动文件夹下的Kconfig(如我的是Kconfig.x86)有: config XXX bool "ABCD" depens on YYYY help ... arch/x86/configs/kkkk_defconfig里有一句

DPDK编译成动态库,应用程序检测不到端口的问题

把DPDK由静态库方式改为编译成动态库后,原本正常的应用程序就不能运行了. 在初始化的时候,rte_eth_dev_count()总是返回0,而用dpdk_nic_bind.py --status查看端口是绑定成功的. DPDK默认是编译成静态库的,改成动态库只需要把common_linuxapp文件中CONFIG_RTE_BUILD_SHARED_LIB=n修改成CONFIG_RTE_BUILD_SHARED_LIB=y就行了. DPDK编译成动态库后,PMD的各个驱动就单独编译成了一个个的.

GCC 编译使用动态链接库和静态链接库--及先后顺序----及环境变量设置总结

GCC 编译使用动态链接库和静态链接库 1 库的分类 根据链接时期的不同,库又有静态库和动态库之分. 静态库是在链接阶段被链接的(好像是废话,但事实就是这样),所以生成的可执行文件就不受库的影响了,即使库被删除了,程序依然可以成功运行. 有别于静态库,动态库的链接是在程序执行的时候被链接的.所以,即使程序编译完,库仍须保留在系统上,以供程序运行时调用.(TODO:链接动态库时链接阶段到底做了什么) 2 静态库和动态库的比较 链接静态库其实从某种意义上来说也是一种粘贴复制,只不过它操作的对象是目标

linux下编译protobuf(可以编译成pb.go)

参考 :https://blog.csdn.net/xiexievv/article/details/47396725 下载代码  : git clone https://github.com/google/protobuf 进入目录 : cd prootbuf ./autogen.sh      $ ./configure  --prefix=<安装路径>      $ make  $ make check $ make install 到此步还没有安装完毕,在用户目录 ~/.bash_pr

cocos2d-x v3.0的window平台搭建和编译成andriod程序

首先添加这个地址到系统环境变量,path 然后打开CMD,输入如下语句 现在就可以创建一个新项目了 这样一个空的cocos2d-x v3.0的项目就创建好了 接下来编译andriod程序 先在系统环境变量中添加一个NDK_ROOT 然后打开cmd 然后就开始编译了 接下来打开ADT中的eclipse 再添加andriod文件夹到工程里 cocos2d-x v3.0的window平台搭建和编译成andriod程序,布布扣,bubuko.com

C代码编译成可执行程序的过程

C代码通过编译器编译成可执行代码,经历了四个阶段,依次为:预处理.编译.汇编.链接. 接下来详细讲解各个阶段 一.预处理 1.任务:进行宏定义展开.头文件展开.条件编译,不检查语法. 2.命令:gcc -E [源文件]  -o [预处理文件] 3.案例:用gcc编译器预处理demo1.c代码,预处理后的文本放到demo1.i中.(gcc -E demo1.c -o demo1.i) demo1.c代码如下: 1 #include <stdio.h> 2 3 #define add(a, b)

转载:将STM32的标准库编译成lib使用【图文】

from:http://www.cnblogs.com/zyqgold/p/3189719.html 百度上边也有不少关于lib文件的文章,恰巧看到该博文,感觉该博文的条理清晰,步骤明确,故复制到这个博文中收藏,若文章作者看到且觉得不能装载,麻烦请告知,谢谢. 验证状态: 博主没有验证该博文. 将STM32的标准库编译成lib使用[图文] 以前一直使用STM32的标准库,需要一步步地将代码加进去,将编译选项设置好,然后再编译整个工程. 这个编译过程是一个相当慢的过程!完全编译大约需要一支烟的时间