libOpenCL.so使用VFP寄存器参数,输出不 [英] libOpenCL.so uses VFP register arguments, output does not

查看:1533
本文介绍了libOpenCL.so使用VFP寄存器参数,输出不的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

目前,我试图建立Buddhabrot为ARM架构
但我被困在一个点时,我得到下面的错误。我希望有人可以提供帮助。

  libOpenCL.so使用VFP寄存器参数,输出不
libGAL.so使用VFP寄存器参数,输出不

这是我的makefile

  LIBS = -lm -lOpenCL -lGAL -lGL -lGLEW -lglut -lpthread
CFLAGS = -Wall -g
物体= main.o中environment.o input.o animate.o buddhabrot.o buddhacl.o cmodules / timer.o
所有:PROG
PROG:$(对象)
    C ++ $(CFLAGS)-o PROG $(对象)$(LIBS)
%的.o:%的.cpp $(LIBS)
清洁:
    RM -f *的.o PROG cmodules / *。Ø

C ++ -v输出

 使用内置的规格。
COLLECT_GCC = C ++
COLLECT_LTO_WRAPPER = / usr / lib目录/ GCC / ARM-Linux的gnueabi / 4.6.1 / LTO-包装
目标:手臂-Linux的gnueabi
配置:../src/configure -v --with-pkgversion ='的Ubuntu / Linaro的4.6.1-9ubuntu3'--with- bugurl =文件:///usr/share/doc/gcc-4.6/README。错误--enable-语言= C,C ++,FORTRAN,objc,OBJ-C ++ - preFIX =的/ usr --program后缀= -4.6 --enable-共享--enable连接体集结号 - -with-系统的zlib --libexecdir = / usr / lib目录--without-包括-gettext的--enable-线程= POSIX --with-GXX-包括-DIR = / usr / include目录/ C ++ / 4.6 = --libdir / usr / lib目录--enable-NLS --with-SYSROOT = / --enable-clocale = GNU --enable-libstdcxx调试--enable-libstdcxx时间= YES --enable-插件--enable-objc- GC --enable-multilib的--disable-sjlj的异常--with拱=的ARMv7-A --with浮= softfp --with-FPU =的VFPv3-D16 --with模式=拇指--disable-werror --enable-检查=发行--build =臂Linux的gnueabi主机=设防Linux的gnueabi --target =臂Linux的gnueabi
线程模型:POSIX
gcc版本4.6.1(Ubuntu的/ Linaro的4.6.1-9ubuntu3)


解决方案

这是告诉你,libOpenCL.so和libGAL.so使用硬浮点和的 VFP 单位,但你的程序被编译为使用软浮点的程序。

使用 -mfloat-ABI =硬标记,并有可能 -mfpu = VFP 标志(见海合会手册页其他VFP变种,可能是合适的)。

如果你的平台不支持硬浮点ABI,或者你的处理器没有浮点单元,则不能使用这两个库。

currently I am trying to build Buddhabrot for ARM architecture but I am stuck at one point when I get the following error. I hope somebody can help.

libOpenCL.so uses VFP register arguments, output does not
libGAL.so uses VFP register arguments, output does not

here's my makefile

LIBS = -lm -lOpenCL -lGAL -lGL -lGLEW -lglut -lpthread
CFLAGS = -Wall -g
OBJECTS = main.o environment.o input.o animate.o buddhabrot.o buddhacl.o cmodules/timer.o
all: prog
prog: $(OBJECTS)
    c++ $(CFLAGS) -o prog $(OBJECTS) $(LIBS)
%.o: %.cpp $(LIBS)
clean:
    rm -f *.o prog cmodules/*.o

c++ -v output

Using built-in specs.
COLLECT_GCC=c++
COLLECT_LTO_WRAPPER=/usr/lib/gcc/arm-linux-gnueabi/4.6.1/lto-wrapper
Target: arm-linux-gnueabi
Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro 4.6.1-9ubuntu3' --with-    bugurl=file:///usr/share/doc/gcc-4.6/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --    prefix=/usr --program-suffix=-4.6 --enable-shared --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.6 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-plugin --enable-objc-gc --enable-multilib --disable-sjlj-exceptions --with-arch=armv7-a --with-float=softfp --with-fpu=vfpv3-d16 --with-mode=thumb --disable-werror --enable-checking=release --build=arm-linux-gnueabi --host=arm-    linux-gnueabi --target=arm-linux-gnueabi
Thread model: posix
gcc version 4.6.1 (Ubuntu/Linaro 4.6.1-9ubuntu3) 

解决方案

This is telling you that libOpenCL.so and libGAL.so are using hard floating points and the VFP unit, but your program is compiled to a program that uses soft floating points.

Use the -mfloat-abi=hard flag, and possibly -mfpu=vfp flag (see the gcc man page for other vfp variants that might be suitable).

If your platform doesn't support a hard float ABI, or your processor doesn't have a floating point unit, you cannot use these two libraries.

这篇关于libOpenCL.so使用VFP寄存器参数,输出不的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆