Qt 中链接Directfb

1. 修改qmake.conf文件, 用如下方法修改:


$(call QT_QMAKE_SET,QMAKE_CC,$(TARGET_CC),$(@D))
$(call QT_QMAKE_SET,QMAKE_CXX,$(TARGET_CXX),$(@D))
$(call QT_QMAKE_SET,QMAKE_LINK,$(TARGET_CXX),$(@D))
$(call QT_QMAKE_SET,QMAKE_LINK_SHLIB,$(TARGET_CXX),$(@D))
$(call QT_QMAKE_SET,QMAKE_OBJCOPY,$(TARGET_OBJCOPY),$(@D))
$(call QT_QMAKE_SET,QMAKE_RANLIB,$(TARGET_RANLIB),$(@D))
$(call QT_QMAKE_SET,QMAKE_STRIP,$(TARGET_STRIP),$(@D))
$(call QT_QMAKE_SET,QMAKE_CFLAGS,$(QT_CFLAGS),$(@D))
$(call QT_QMAKE_SET,QMAKE_CXXFLAGS,$(QT_CXXFLAGS),$(@D))
$(call QT_QMAKE_SET,QMAKE_LFLAGS,$(QT_LFLAGS),$(@D))


几个关键的环境变量定义如下:

QT_CFLAGS = $(TARGET_CFLAGS) -isystem $(STAGING_DIR)/usr/include/directfb
QT_CXXFLAGS = $(TARGET_CXXFLAGS) -isystem $(STAGING_DIR)/usr/include/directfb
QT_LFLAGS = $(TARGET_LDFLAGS) -L$(STAGING_DIR)/usr/lib -ldirectfb -ldirect -lfusion


QT_QMAKE_SET定义如下:

QT_EMB_PLATFORM=mips

define QT_QMAKE_SET
$(SED) '/$(1)/d' $(3)/mkspecs/qws/linux-$(QT_EMB_PLATFORM)-g++/qmake.conf
$(SED) '/include.*qws.conf/a$(1) = $(2)' $(3)/mkspecs/qws/linux-$(QT_EMB_PLATFORM)-g++/qmake.conf
endef


2. 在QT configure的时候加上

QT_CONFIGURE_OPTS += -qt-gfx-directfb 
QT_CONFIGURE_OPTS += -plugin-gfx-directfb


./configure \
$(if $(VERBOSE),-verbose,-silent) \
-force-pkg-config \
$(QT_CONFIGURE_OPTS) \
-no-xinerama \
-no-cups \
-no-nis \
-no-accessibility \
-no-separate-debug-info \
-prefix /usr \
-plugindir /usr/lib/qt/plugins \
-hostprefix $(STAGING_DIR) \
-fast \
-no-rpath 


3. configure失败的时候可以进到对应目录,比如

config.tests/qws/directfb,  在该目录下直接Make,看看发生了什么错误。


你可能感兴趣的:(Linux编程)