• 20989阅读
  • 18回复

请问在Broadcom 7405的板子上如何编译qt-everywhere-opensource-src-4.6.2.tar.gz? [复制链接]

上一主题 下一主题
离线davidchiu
 
只看楼主 倒序阅读 楼主  发表于: 2010-03-16
请问在Broadcom 7405的板子上如何编译qt-everywhere-opensource-src-4.6.2.tar.gz?

congfigure应该带哪些参数?

并且只能用DirectFB启动!

谢谢!
离线davidchiu
只看该作者 1楼 发表于: 2010-03-17
./configure -opensource -static -prefix /home/stb/qt -embedded -arch mips -little-endian -host-little-endian -xplatform qws/linux-mips-g++ -plugin-gfx-directfb -no-libpng

qmake.conf已经修改,加上了
QT_CFLAGS_DIRECTFB = -I/home/stb/Broadcom/nexus/lib/directfb/src/DirectFB-1.0.0/build.97405B0/opt/dfb/include/directfb -D_REENTRANT
QT_LIBS_DIRECTFB = -L/home/stb/Broadcom/nexus/lib/directfb/src/DirectFB-1.0.0/build.97405B0/opt/dfb/lib/-ldirect -ldirectfb -lfusion


但是,总是报如下错误:
Creating qmake. Please wait...
gmake: Nothing to be done for `first'.
The DirectFB screen driver functionality test failed!
You might need to modify the include and library search paths by editing
QT_CFLAGS_DIRECTFB and QT_LIBS_DIRECTFB in
/home/stb/qt-everywhere-opensource-src-4.6.2/mkspecs/qws/linux-mips-g++.

google了半天,没有发现解决的方法,郁闷。
离线davidchiu
只看该作者 2楼 发表于: 2010-03-17
加上-v后,有如下错误:
DirectFB auto-detection... ()
mips-linux-g++ -c -pipe -mips32 -D_REENTRANT -I/home/stb/dfb/include/directfb -O2 -Wall -W  -I../../../mkspecs/qws/linux-mips-g++ -I. -o directfb.o directfb.cpp
mips-linux-g++ -Wl,-O1 -o directfb directfb.o     -L/home/stb/dfb/lib -ldirectfb -lfusion -ldirect -lpthread -ldl
/home/stb/dfb/lib/libdirectfb.so: could not read symbols: File in wrong format
collect2: ld returned 1 exit status
gmake: *** [directfb] 错误 1
DirectFB disabled.
The DirectFB screen driver functionality test failed!
You might need to modify the include and library search paths by editing
QT_CFLAGS_DIRECTFB and QT_LIBS_DIRECTFB in
/home/stb/qt-everywhere-opensource-src-4.6.2/mkspecs/qws/linux-mips-g++.
离线davidchiu
只看该作者 3楼 发表于: 2010-03-17
libdirectfb.so是用mips-linux-gcc编译的,mips-linux-g++竟然不认识?百思不解中~
离线davidchiu
只看该作者 4楼 发表于: 2010-03-17
原来libdirectfb.so是用mipsel-linux-gcc编译的,这是-little-endian mips,所以用-big-endian mips-linux-g++编译,导致无法识别,但是

在的configure中已经指明了-little-endian,但是为什么还是用mips-linux-g++,而没有用mipsel-linux-g++呢?

谁能指明一下方向,谢谢~

累呀~


先手工将mipsel-linux-g++修改mips-linux-g++,试试瞒天过海法~
[ 此帖被davidchiu在2010-03-17 20:09重新编辑 ]
离线davidchiu
只看该作者 5楼 发表于: 2010-03-18
晕死了,哎,头昏了!
-little-endian将目录/mkspecs/qws/linux-mips-g++/qmake.conf 将其中的mips-linux-gcc、mips-linux-g++改为mipsel-linux-gcc、mipsel-linux-g++即可,搞什么瞒天过海法,汗颜!

有人知道-qt-gfx-directfb同-plugin-gfx-directfb有什么区别吗?
   -qt-gfx-directfb同-plugin-gfx-directfb的区别:

    -qt-gfx-directfb- ...      Enable a directfb in the Qt Library.
    -plugin-gfx-directfb-   Enable directfb as a plugin to be linked to at runtime.
[ 此帖被davidchiu在2010-03-24 12:56重新编辑 ]
离线davidchiu
只看该作者 6楼 发表于: 2010-03-18
qt-everywhere-opensource-src-4.6.2.tar.gz中的lib里面的so库文件,都是big endian版本的,导致example无法编译,又得回去修改configure参数,郁闷。

==================
说错了,这些so文件是早期自己用big endian的mips-linux-g++编译的,修改congfigure,将-static去掉,执行之后,重新生产Makefile,然后跑到src目录的corelib、network、xml等目录下面重新make,将生产相关的新的little endian的so文件就可以用了。

然后可以继续gmake了。
[ 此帖被davidchiu在2010-03-18 15:15重新编辑 ]
离线davidchiu
只看该作者 7楼 发表于: 2010-03-18
有出现如下的问题:
obj/release/Collector.o: In function `JSC::Heap::markCurrentThreadConservativelyInternal(JSC::MarkStack&)':
Collector.cpp:(.text._ZN3JSC4Heap39markCurrentThreadConservativelyInternalERNS_9MarkStackE+0x74): undefined reference to `__libc_stack_end'
obj/release/JSValue.o: In function `JSC::toUInt32SlowCase(double, bool&)':
JSValue.cpp:(.text._ZN3JSC16toUInt32SlowCaseEdRb+0xf8): undefined reference to `trunc'
obj/release/JSValue.o: In function `JSC::toInt32SlowCase(double, bool&)':
JSValue.cpp:(.text._ZN3JSC15toInt32SlowCaseEdRb+0xc0): undefined reference to `trunc'
obj/release/JSValue.o: In function `JSC::JSValue::toInteger(JSC::ExecState*) const':
JSValue.cpp:(.text._ZNK3JSC7JSValue9toIntegerEPNS_9ExecStateE+0xc0): undefined reference to `trunc'
obj/release/JSValue.o: In function `JSC::JSValue::toIntegerPreserveNaN(JSC::ExecState*) const':
JSValue.cpp:(.text._ZNK3JSC7JSValue20toIntegerPreserveNaNEPNS_9ExecStateE+0x3c): undefined reference to `trunc'
obj/release/DateMath.o: In function `WTF::timeClip(double)':
DateMath.cpp:(.text._ZN3WTF8timeClipEd+0x5c): undefined reference to `trunc'
obj/release/qt_runtime.o:qt_runtime.cpp:(.text._ZN3JSC8Bindings22convertQVariantToValueEPNS_9ExecStateEN3WTF10PassRefPtrINS0_10RootObjectEEERK8QVariant+0x4d0): more undefined references to `trunc' follow

===============================================

莫非mipse-linux-g++的版本太低导致的?

mipse-linux-g++ 版本4.2看样子真的不行~
离线davidchiu
只看该作者 8楼 发表于: 2010-03-19
编译最终通过了!
gmake
gmake install
都完成了!
但是所有的例子程序在开发板上运行都是Segmentation fault,原因,原因何在?
离线davidchiu
只看该作者 9楼 发表于: 2010-03-20
终于知道原因了,
所有example编译时带上-lpthread
就是导致Segmentation fault,具体原因不知道!
去掉-lpthread,重新编译,生成的example终于能跑起来了,不再出现Segmentation fault!
但是
但是
但是
..........
但是执行
./app -qws -display directfb
没有任何反应(屏幕不显示任何东西),似乎死掉了,极度郁闷呀!
离线davidchiu
只看该作者 10楼 发表于: 2010-03-23
去掉-static,编译到libQtScript.so.4.6.2时,出现如下错误:
/opt/toolchains/crosstools_hf-linux-2.6.18.0_gcc-4.2-10ts_uclibc-nptl-0.9.29-20070423_20080721/bin/../lib/gcc/mipsel-linux-uclibc/4.2.0/../../../../mipsel-linux-uclibc/bin/ld: non-dynamic relocations refer to dynamic symbol floor
/opt/toolchains/crosstools_hf-linux-2.6.18.0_gcc-4.2-10ts_uclibc-nptl-0.9.29-20070423_20080721/bin/../lib/gcc/mipsel-linux-uclibc/4.2.0/../../../../mipsel-linux-uclibc/bin/ld: failed to set dynamic section sizes: Bad value
collect2: ld returned 1 exit status
gmake: *** [../../lib/libQtScript.so.4.6.2]  1

已经带上了-g -fPIC -shared,咋还是有问题呢?
离线gyley

只看该作者 11楼 发表于: 2010-03-24
请问一个问题,怎么样吧QT移植到broadcom的系统上来!??如果有相关文档,并且您愿意,请发给我一份,谢谢!我的邮箱gyley@163.com
离线davidchiu
只看该作者 12楼 发表于: 2010-03-24
Re:请问在Broadcom 7405的板子上如何编译qt-everywhere-opensource-src-4.6.2.tar.gz?,吗
引用第11楼gyley于2010-03-24 11:37发表的  :
请问一个问题,怎么样吧QT移植到broadcom的系统上来!??如果有相关文档,并且您愿意,请发给我一份,谢谢!我的邮箱gyley@163.com


呵呵,没有文档,我做的工作都在这个帖子里面写了!

你如果有问题,就跟帖,我尝试解答吧。

你也看到了,我其实移植没有成功!还在查找问题当中。
离线azureloong
只看该作者 13楼 发表于: 2010-04-02
上网查一些资料,无意中看到这个贴。极有感触,09年初的时候我也搞个这个玩意,也是在7405上移植Qt。
那时我还不知道Qt可以用dfb,而且当年phase的版本好像是4.0?好像还没有支持dfb。后来就做了一个虚拟层的fb。
有兴趣的话,可以看看我的工作日志:http://blog.chinaunix.net/u/25764/showart_1870254.html
lz如果移植成功了,还请继续更新一下帖子。谢谢。
离线得道之兔

只看该作者 14楼 发表于: 2010-04-20
关注一下!
最近也在做同样的事情。
岂能尽如人意,但求无愧我心。
离线得道之兔

只看该作者 15楼 发表于: 2010-04-20
我也是同样的qt-everywhere-opensource-src-4.6.2版本,修改了qt-everywhere-opensource-src-4.6.2/mkspecs/qws/linux-mipsel-g++/qmake.conf文件。
现在编译可以通过,但是在板子上运行出现segment fault。

正在尝试解决。
岂能尽如人意,但求无愧我心。
离线huffman123
只看该作者 16楼 发表于: 2010-04-22
lz,
    你在7405上移植成功了吗?
  我在BCm7405上移植出现错误undefined reference to `__libc_stack_end'错误,如下:
obj/release/Collector.o: In function `JSC::Heap::markCurrentThreadConservativelyInternal(JSC::MarkStack&)':
Collector.cpp:(.text._ZN3JSC4Heap39markCurrentThreadConservativelyInternalERNS_9MarkStackE+0x74): undefined reference to `__libc_stack_end'
collect2: ld returned 1 exit status
make[1]: *** [../../../../lib/libQtWebKit.so.4.6.1] Error 1
make[1]: Leaving directory `/home/xxx/qt-everywhere-opensource-src-4.6.1/src/3rdparty/webkit/WebCore'
make: *** [sub-webkit-make_default-ordered] Error 2

   请问lz,你用什么configure选项,qmake.conf怎么更改的呢?
离线ycncepu
只看该作者 17楼 发表于: 2010-06-04
请教下,您在之前的记录中提到以下问题,能否指点下怎么解决的吗,我也是使用Mipsel
obj/release/Collector.o: In function `JSC::Heap::markCurrentThreadConservativelyInternal(JSC::MarkStack&)':
Collector.cpp:(.text._ZN3JSC4Heap39markCurrentThreadConservativelyInternalERNS_9MarkStackE+0x74): undefined reference to `__libc_stack_end'
obj/release/JSValue.o: In function `JSC::toUInt32SlowCase(double, bool&)':
JSValue.cpp:(.text._ZN3JSC16toUInt32SlowCaseEdRb+0xf8): undefined reference to `trunc'
obj/release/JSValue.o: In function `JSC::toInt32SlowCase(double, bool&)':
JSValue.cpp:(.text._ZN3JSC15toInt32SlowCaseEdRb+0xc0): undefined reference to `trunc'
obj/release/JSValue.o: In function `JSC::JSValue::toInteger(JSC::ExecState*) const':
JSValue.cpp:(.text._ZNK3JSC7JSValue9toIntegerEPNS_9ExecStateE+0xc0): undefined reference to `trunc'
obj/release/JSValue.o: In function `JSC::JSValue::toIntegerPreserveNaN(JSC::ExecState*) const':
JSValue.cpp:(.text._ZNK3JSC7JSValue20toIntegerPreserveNaNEPNS_9ExecStateE+0x3c): undefined reference to `trunc'
obj/release/DateMath.o: In function `WTF::timeClip(double)':
DateMath.cpp:(.text._ZN3WTF8timeClipEd+0x5c): undefined reference to `trunc'
obj/release/qt_runtime.o:qt_runtime.cpp:(.text._ZN3JSC8Bindings22convertQVariantToValueEPNS_9ExecStateEN3WTF10PassRefPtrINS0_10RootObjectEEERK8QVariant+0x4d0): more undefined references to `trunc' follow
离线e2zone

只看该作者 18楼 发表于: 2012-05-10
朋友,请问你有broadcom7405的资料或者是数据手册吗?谢谢。
快速回复
限100 字节
 
上一个 下一个