mipsel-openwrt-linux-gcc交叉编译时找不到库文件的解决办法

来源:互联网 发布:有mac版的lol 编辑:程序博客网 时间:2024/05/04 06:33

1、在学习《linux程序设计》的时候利用ubuntu14.04系统自带的dbm数据库对一个CD程序想要交叉编译,然都一直到mips架构下的WRTnode2P, 但是在交叉编译的时候找不到libgdbm库,在WRTnode.cc中也找不到对应的库文件(有一个libgdbm,但是版本吗大不相同)。于是找到从网上下载源码,因为dbm相关的函数都是用C语言开发的,可以自行交叉编译得到相应的可执行文件。
从网上下载源代码的命令:

sudo apt-get source libgdbm-dev

现在有2个源文件,一个头文件
app_ui.c access.c access.h。access.c access.h中包含dbm的函数的文件,将下载的源代码的文件夹放入到与app_ui.c 相同的目录下这里写图片描述
gdbm的源代码就在gdbm-1.8.3中

makefile 书写 (还不是很简练,makefile刚刚学会制作)

all:    app_uiobjs = app_ui.o  access.o     dbmdelete.o  dbmrdonly.o  findkey.o     gdbmfetch.o   gdbmsync.o\                dbmdirfno.o  dbmseq.o     gdbmclose.o   gdbmopen.o \           getopt.o     bucket.o     dbmfetch.o   dbmstore.o \          gdbmdelete.o  gdbmreorg.o   global.o     close.o    dbminit.o \  delete.o     gdbmerrno.o   gdbmseq.o     hash.o      update.o  \  dbmopen.o    falloc.o     gdbmexists.o  gdbmsetopt.o  seq.o       version.o\        dbmclose.o   dbmpagfno.o  fetch.o      gdbmfdesc.o   gdbmstore.o   store.o#INCLUDE=/usr/include/gdbmINCLUDE=-I./gdbm-1.8.3LIBS=-lgdbm# On some distributoions you may need to change the above line to include# the compatability library, as shown below.#LIBS=-lgdbm_compat -lgdbm#CC = gccCC = mipsel-openwrt-linux-gcc%.o:        $(CC) $(INCLUDE) -c *.c ./gdbm-1.8.3/*.capp_ui: $(objs)#       $(CC) -o $@  $(objs) -lgdbm        $(CC) -o app_ui  $(objs)

在make编译的时候可能会出现有多个main函数的错误(可能包含测试文件),在目录下删除包含main函数的 *.o 文件再次make 就可以得到可执行文件app_ui。 经过测试可以在WRTnode下运行。

0 0
原创粉丝点击