QWT编译以及交叉编译的问题
- #### 下载QWT源文件 ####
下载地址:http://sourceforge.net/projects/qwt/files/qwt/ - #### 编译QWT源文件 ####
- 将下载好的文件解压并且进入到解压目录中
- 运行客户端进入到该目录中,然后执行下列命令
qmake
make
make install - 编译好的QWT文件默认存放在/usr/local/qwt-6.1.3中
- 注意事项1:上述编译好的qwt库文件只能在桌面平台使用,可以使用file命令查看库文件是哪个平台的使用版本
- 注意事项2:在安装了交叉编译器和嵌入式QT平台的linux下,需要先知道qmake程序是桌面QT还是嵌入式QT的,还要知道当前默认编译器是桌面GCC编译器还嵌入式GCC交叉编译器。
- 注意事项3:如果通过全路径指向了嵌入式qmake,但是后来make用的是桌面GCC编译器,则编译好的库依然不能再嵌入式平台使用。
- ####交叉编译QWT
交叉编译QWT有两种方法,一种是使用如标题2中使用的命令一样,但是前提是需要将qmake指向嵌入QT的,而指定使用交叉编译器。第二种是:利用qtcreator来交叉编译qwt,前提是你已经在qtcreator上配置好了嵌入式平台,然后将目标平台设置为嵌入式平台。
- 交叉编译QWT前需要精简QWT,因为有些特性在嵌入式平台无法使用。具体如下:打开刚解压缩的qwt-6.1.3源文件目录中的qwtconfig.pri文件:
- 将第22行的路径修改为QWT_INSTALL_PREFIX = /usr/local/qwt-$$QWT_VERSION-Mini2440,交叉编译版本的qwt将会被安装在/usr/local/qwt-6.1.2-Mini2440目录下
- 将102行的#QWT_CONFIG += QwtOpenGL注释掉,删除OpenGL支持,这是因为Mini2440官方给出的编译QtE-4.6.3的配置文件中未开启OpenGL,否则编译会出现错误: qwt_plot_glcanvas.h:15:17: fatal error: qgl.h: No such file or directorycompiling qwt_abstract_slider.cpp
- 将121行的#QWT_CONFIG += QwtDesigner注释掉,不编译Designer插件,这是因为Designer插件只能在主机上使用,否则会出现编译错误:qwt_designer_plugin.h:23: Error: Undefined interface
- 如果想在开发板上测试qwt源文件中提供的example,则将144行的QWT_CONFIG +=QwtExamples注释取消掉即可,这样在稍后make过程中会在example目录下自动生成名为bin的可在mini2440开发板上执行的文件目录
- 利用qtcreator编译qwt的方法
- 用qtcreator打开qwt-6.1.3目录下的.pro文件,然后设置好构建目录,点击构建即可,然后就可从指定的构建目录中找到编译好的库
- 上述方法交叉编译好的目标中只有动态链接库,至于头文件,可以使用桌面上使用的qwt头文件。
- 交叉编译QWT前需要精简QWT,因为有些特性在嵌入式平台无法使用。具体如下:打开刚解压缩的qwt-6.1.3源文件目录中的qwtconfig.pri文件:
- #### 编写QWT的qt程序注意事项####
- 在什么平台运行将要包含对应平台的qwt库
- 具体方法是,在qt工程的pro文件中加入下述内容
INCLUDEPATH += /usr/local/qwt-6.1.3/include
LIBS += -L"/usr/local/qwt-6.1.3/lib" -lqwt #桌面平台使用
LIBS += -L"/usr/local/qwt-6.1.3-zynq/lib" -lqwt #q嵌入式平台使用
- #### 在嵌入式平台使用qwt ####
需要将libqwt.so.6.1.3拷贝到嵌入式平台下的/usr/lib下,并且重命名为libqwt.so.6
http://blog.csdn.net/lihui126/article/details/45788957
http://blog.csdn.net/oldmtn/article/details/37814571