LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1233|回复: 11

使用glibc-2.3-20031102+nptl+gcc-3.3.2,已经做完了完整的LFS,在做QT的时候出现线程

[复制链接]
发表于 2003-11-5 15:49:13 | 显示全部楼层 |阅读模式
make[4]: Entering directory `/source/qt/tools/designer/designer'
/source/qt/bin/uic ....................
........................... -o qmake_image_collection.cpp
QThreadStorage: thread 40caf330 exited after QThreadStorage destroyed
make[4]: *** [qmake_image_collection.cpp] Segmentation fault
make[4]: *** Deleting file `qmake_image_collection.cpp'
make[4]: Leaving directory `/source/qt/tools/designer/designer'
make[3]: *** [sub-designer] Error 2
make[3]: Leaving directory `/source/qt/tools/designer'
make[2]: *** [sub-designer] Error 2
make[2]: Leaving directory `/source/qt/tools'
make[1]: *** [sub-tools] Error 2
make[1]: Leaving directory `/source/qt'
make: *** [init] Error 2
root:/source/qt#
编译到这里的时候就出现了线程出错了,所有的qt/tools里面的东西都了现了相同的错误。不知道怎么办?
我的用是glibc-2.3-20031102+nptl+gcc-3.3.2+kernel-2.6.0-test9-bk8
现在不知道要怎么解决。听网友说,可以避开tools不要进行编译,
但是BLFS的文档里面只是说了避开example和tutorial 的方法,那就是用
make sub-tools代替make,但是没有说要怎么去避开tools。而且我看了一下tools目录下面还有qtconfig这个应该也是会影响使用的吧?
现在比较迷糊了,高手们指点一下吧。
发表于 2003-11-6 01:31:44 | 显示全部楼层
好像有sub-tools就行了.
qtconfig就是改改配置文件,你手动写也一样.
 楼主| 发表于 2003-11-6 07:24:28 | 显示全部楼层
用了make sub-tools这样也不行啊,它也会去编译tools目录下面的东西呀。难道是真的要改改 Makefile了才行吗?
发表于 2003-11-6 10:53:43 | 显示全部楼层
这个……也许这也是cvs的代价吧..
 楼主| 发表于 2003-11-6 14:41:45 | 显示全部楼层
hoho,晕死了。怎么办呢?现在已经做到了这里了。
我将我的另外一个普通GLIBC的系统将qt,kde-cvs的东西全部都复制过去,也是可以用的。也好像没有什么问题耶。觉得有点奇怪的说耶。而且现在也安装了 NVDIA的驱动。也可以用了。
 
 楼主| 发表于 2003-11-10 06:45:45 | 显示全部楼层
现在又有问题了,虽然将另外一个QT跟KDE移过来可以用,但是在进行KDE-CVS的更新时,还是会出现线程错误。晕死了。不知道要怎么办呢?高手啊,请帮帮我吧。
 楼主| 发表于 2003-11-10 23:57:13 | 显示全部楼层
在RH9.0的发行注记里面有提到关于nptl在使用时与原来的应用程序的问题时:
如果某应用程序使用 NPTL 无法正确运行,它可以使用原有的 LinuxThreads 实现来运行,方法是设置以下的环境变量:


LD_ASSUME_KERNEL=<kernel-version>


可用的版本如下:


- 2.4.1 — 带有浮动堆栈的 Linuxthreads


- 2.2.5 — 没有浮动堆栈的 Linuxthreads


所有动态链接的程序的 NPTL 支持可以使用以下引导时间选项来禁用:
nosysinfo

虽然是这样说,但是在编译的时候搞不懂要怎么将这个环境参数加入选项中,我编译的时候一般是在使用QT的uic等工具的时候才有此问题的。但是不知道要怎么加入编译选项中.....
 楼主| 发表于 2003-11-11 00:22:03 | 显示全部楼层
现在的问题是我在configure 或者是make 的前面设置了LD_ASSUME_KERNEL的时候,那么一些动态连接程序都不能使用,如make,ld,ls等等之类的,就算重新执行了ldconfig之后,也还是提示找不到共享库文件。
    按发行的注记所写的,在不支持NPTL的应用程式里面设置LD_ASSUME_KERNEL就可以了。因为出问题的是uic(即QT自带的编译工具)那么,我就到了tools/designer/designer/Makefile将里面关于UIC这个变量的值由原来的UIC=/source/qt/bin/uic -L /source/qt/plugins  改成了LD_ASSUME_KERNEL=2.4.1 /source/qt/bin/uic -L /source/qt/plugins 这样就将uic这处应用程序指向旧的库文件了,但是现在还是一样有问题:
/source/qt/bin/uic: error while loading shared libraries: libdl.so.2: cannot open shared object file: No such file or directory
   跟前面的普通程序一样。
发表于 2003-11-11 02:22:09 | 显示全部楼层
你可以到qt的邮件列表上看看?
发表于 2003-11-11 08:30:50 | 显示全部楼层
LD_ASSUME_KERNEL=<kernel-version>
哈哈
这样不好,你都2.6了还2.4
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表