首页| 论坛| 消息
主题:开贴整理常见编译错误集锦 -- 不断更新中
shiroki发表于 2006-10-29 22:20
看到大家为了编译搞得这么痛苦, 实在于心不忍. 决定开篇整理在编译过程中遇到的问题. 大家有什么新问题也可申请加到本贴中.

cannot find -lqte
这个问题比较复杂, 需要从几个方面来分析. 首先要看编译的命令行, 在编译的命令行里应该正确的指定libqte.so所在的路径. 用tmake生成的makefile里, 该路径会引用QTDIR/lib, 如果报该错, 则是QTDIR环境变量设定有误; 另外, tmake引用TMAKEDIR和TMAKEPATH变量。 TMAKEDIR设定tmake目录的路径, TMAKEPATH设定你使用的tmakespec位置, 当编译qt-x11程序时设为TMAKEPATH=$TMAKEDIR/lib/linux-g++, 编译qte程序时设为TMAKEPATH=$TMAKEDIR/lib/qws/linux-generic-g++
qmake则依据QMAKESPEC环境变量的值生成makefile, 对应qte/qtopia应用需要将QMAKESPEC设定为QPEDIR/mkspecs/qws/linux-generic-g++
该问题的解决方案就是设置好相应的环境变量, 重新用tmake或者qmake去生成Makefile, 然后编译. 肯定能行, 呵呵
uuid/uuid.h
桌面环境需要安装e2fsprogs的开发包(-devel包), 如果是交叉编译环境, 则需要找到源码包进行交叉编译. 装好开发包再make即可.
jpeg.h
需要安装libjpeg的开发包或用源码包交叉编译, 网上搜jpegsrc即可找到
cups/cups.h
安装 cups-devel*.rpm包
GL/glu.h
安装 mesa-libGLU-devel*.rpm包
undefined reference xxx
这是个链接错误,意思是说在你的程序里引用了某个函数或变量, 但是链接器找不到该变量的定义.
最容易出现此错误的情况是, 你的头文件和库文件不匹配. 比如你用了x11版本的头文件, 而链接到嵌入式版本的qt;或者有头文件但找不到库文件等. 具体问题具体分析.
如果报的符号是在某个第三方库里的, 比如uuid的什么什么函数, 则要检查你的libqte是不是编译得正确. 本来这些库应该正确链接到libqte.so上, 这样在qtopia链接的时候就不需要显式的加上这些库了. 有的时候libqte没有正确链接好, 但是在编译libqte阶段不会报错, 到后面qtopia或者其他应用编译的时候就出错了.
解决方案是把报错的库删除, 重新编译库. 如果是libqte, 要把你环境里的出现libqte的地方都检查检查, 有可能存在不同的libqte互相影响.
回帖(47):
47楼:,新错误
46楼:打开项目编译后,出现 exited with code 254是什么原因
45楼:/usr/local/arm/qt-everywhere-opensource-src-4.7.3/bin/uic dialogs/qpagesetupwidget.ui -o . ..

全部回帖(47)»
最新回帖
收藏本帖
发新帖