红联Linux门户
Linux帮助

有关SDL移植问题

发布时间:2013-12-18 18:34:06来源:红联作者:hb881029
开发平台:
pc linux平台 : ubuntu 12.04
交叉编译工具: arm-none-linux-gnueabi-gcc

开发目的:
移植SDL,用于arm开发板。



****安装完SDL后,进入test目录(SDL自带的测试代码目录)下,Makefile中的编译工具此时还是gcc (如下):

3 srcdir = .
4
5 CC = gcc
6 #CC = arm-none-linux-gnueabi-gcc
7
8 EXE =
9 #CFLAGS = -g -O2 -I/usr/local/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -DHAVE_O PENGL
10 #LIBS = -L/usr/local/lib -Wl,-rpath,/usr/local/lib -lSDL -lpthread
11
12 CFLAGS = -g -O2 -I/opt/output/include/SDL -D_GNU_SOURCE=1 -D_REENTRA NT -DHAVE_OPENGL
13 LIBS = -L/opt/output/lib -lSDL -lpthread
14

后使用make 编译,没有报错,顺利产生相应的可执行文件(如下图,截取了部分,但是都差不多,毕竟没有错误):

wu@wu-desktop:~/sdl/SDL-1.2.15/test$ make
gcc -o checkkeys checkkeys.c -g -O2 -I/opt/output/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -DHAVE_OPENGL -L/opt/output/lib -lSDL -lpthread
gcc -o graywin graywin.c -g -O2 -I/opt/output/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -DHAVE_OPENGL -L/opt/output/lib -lSDL -lpthread
gcc -o loopwave loopwave.c -g -O2 -I/opt/output/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -DHAVE_OPENGL -L/opt/output/lib -lSDL -lpthread
gcc -o testalpha testalpha.c -g -O2 -I/opt/output/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -DHAVE_OPENGL -L/opt/output/lib -lSDL -lpthread -lm
gcc -o testbitmap testbitmap.c -g -O2 -I/opt/output/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -DHAVE_OPENGL -L/opt/
....
....

后将Makefile文件中gcc修改成交叉编译工具
5 #CC = gcc
6 CC = arm-none-linux-gnueabi-gcc
7
8 EXE =
9 #CFLAGS = -g -O2 -I/usr/local/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -DHAVE_O PENGL
10 #LIBS = -L/usr/local/lib -Wl,-rpath,/usr/local/lib -lSDL -lpthread
11
12 CFLAGS = -g -O2 -I/opt/output/include/SDL -D_GNU_SOURCE=1 -D_REENTRA NT -DHAVE_OPENGL
13 LIBS = -L/opt/output/lib -lSDL -lpthread

后再make编译,则报错,如下图(截取了报错的部分信息)
5TE/arm-none-linux-gnueabi-4.4.0_ARMv5TE/arm-none-linux-gnueabi/bin/../../arm-none-linux-gnueabi/lib/libSDL.so when searching for -lSDL
/opt/ARMv5TE/arm-none-linux-gnueabi-4.4.0_ARMv5TE/bin/../lib/gcc/arm-none-linux-gnueabi/4.4.0/../../../../arm-none-linux-gnueabi/bin/ld: skipping incompatible /opt/ARMv5TE/arm-none-linux-gnueabi-4.4.0_ARMv5TE/arm-none-linux-gnueabi/bin/../../arm-none-linux-gnueabi/lib/libSDL.a when searching for -lSDL
/opt/ARMv5TE/arm-none-linux-gnueabi-4.4.0_ARMv5TE/bin/../lib/gcc/arm-none-linux-gnueabi/4.4.0/../../../../arm-none-linux-gnueabi/bin/ld: cannot find -lSDL
collect2: ld returned 1 exit status
make: *** [checkkeys] 错误 1

说是cannot find -lSDL,现在这个问题一直不知道如何解决。望高手指点,谢谢……
文章评论

共有 0 条评论