miniGUI移植大致流程

艾编程的鲁小班 2019-12-05 18:19:48 4177

移植过程大致如下(由于存在依赖关系,顺序不能错):
--prefix 为生成库文件目录;
--host 指定目标板编译器;
LDFLAGS 为动态库路径
CFLAGS 为头文件路径
CC=arm-hisiv200-linux-gcc
CPP=arm-hisiv200-linux-cpp
CXX=arm-hisiv200-linux-g++
LD=arm-hisiv200-linux-ld
AR=arm-hisiv200-linux-ar
RANLIB=arm-hisiv200-linux-ranlib
STRIP=arm-hisiv200-linux-strip

source /etc/profile
export CC=arm-hisiv200-linux-gcc CXX=arm-hisiv200-linux-g++ LD=arm-hisiv200-linux-ld AR=arm-hisiv200-linux-ar

1、zlib-1.2.6--------
./configure --prefix=$PWD/_install
make & make install
sudo cp -r _install/* /opt/hisi-linux/x86-arm/arm-hisiv200-linux/arm-hisiv200-linux-gnueabi/

2、libpng-1.2.37-----
./configure --prefix=$PWD/_install --host=arm-hisiv200-linux
make & make install
sudo cp -r _install/* /opt/hisi-linux/x86-arm/arm-hisiv200-linux/arm-hisiv200-linux-gnueabi/

3、jpeg-7------------
./configure --prefix=$PWD/_install --host=arm-hisiv200-linux
make;make install
sudo cp -r _install/* /opt/hisi-linux/x86-arm/arm-hisiv200-linux/arm-hisiv200-linux-gnueabi/
/freetype-1.3.1/
4、freetype-1.3.1
./configure --prefix=$PWD/_install --host=arm-hisiv200-linux
vim config.cache 修改
ac_cv_path_LD=${ac_cv_path_LD=arm-hisiv200-linux-ld}
ac_cv_prog_CC=${ac_cv_prog_CC=arm-hisiv200-linux-gcc}
ac_cv_prog_CPP=${ac_cv_prog_CPP='arm-hisiv200-linux-gcc -E'}
重新运行
./configure --prefix=$PWD/_install --host=arm-hisiv200-linux
修改Makefile文件,以跳过编译test目录。

去掉“all:”后的变量“tttest”

注释掉“install:”下的第二行:“cd $(FTTESTDIR); $(MAKE) –f$(MAKEFILE) install”

make & make install
sudo cp -r _install/* /opt/hisi-linux/x86-arm/arm-hisiv200-linux/arm-hisiv200-linux-gnueabi/
/**/
4、freetype-2.3.9-fm20100818 miniGui修改后的库
./configure --prefix=$PWD/_install --host=arm-hisiv200-linux
make;make install

出现 rmdir: ‘/usr/local/modules/freetype/include/freetype2/freetype/internal’: 没有那个文件或目录
make: [install] 错误 1 (忽略)
解决办法:
mkdir usr/local/modules/freetype/include/freetype2/freetype/internal
make install

/****/
交叉移植完zlib,png,jpeg,freetype后将上述生成的库文件拷贝至/opt/hisi-linux/x86-arm/arm-hisiv200-linux/arm-hisiv200-linux-gnueabi相应目录下,此为HI3531的编译环境,

5、libminigui-gpl-3.0.12
./configure --disable-screensaver --disable-splash --disable-jpgsupport --enable-pngsupport --with-osname=linux --with-targetname=fbcon --enable-autoial --build=i686-linux --target=arm-unknown-linux --host=arm-hisiv200-linux --prefix=$PWD/_install CC=arm-hisiv200-linux-gcc CPP=arm-hisiv200-linux-cpp CXX=arm-hisiv200-linux-g++ LD=arm-hisiv200-linux-ld AR=arm-hisiv200-linux-ar RANLIB=arm-hisiv200-linux-ranlib STRIP=arm-hisiv200-linux-strip

./configure --prefix=$PWD/_install --disable-screensaver --disable-splash --disable-jpgsupport --with-osname=linux --with-targetname=fbcon --enable-autoial --enable-ttfcache --with-ttfsupport=ft2 --host=arm-hisiv400-linux
make;make install

/****/
Installation directories:
--prefix=PREFIX install architecture-independent files in PREFIX
[/usr/local]
--exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
[PREFIX]

By default, make install' will install all the files in /usr/local/bin', /usr/local/lib' etc. You can specify an installation prefix other than/usr/local' using --prefix', for instance--prefix=$HOME'.

For better control, use the options below.

Fine tuning of the installation directories:
--bindir=DIR user executables [EPREFIX/bin]
--sbindir=DIR system admin executables [EPREFIX/sbin]
--libexecdir=DIR program executables [EPREFIX/libexec]
--sysconfdir=DIR read-only single-machine data [PREFIX/etc]
--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
--localstatedir=DIR modifiable single-machine data [PREFIX/var]
--libdir=DIR object code libraries [EPREFIX/lib]
--includedir=DIR C header files [PREFIX/include]
--oldincludedir=DIR C header files for non-gcc [/usr/include]
--datarootdir=DIR read-only arch.-independent data root [PREFIX/share]
--datadir=DIR read-only architecture-independent data [DATAROOTDIR]
--infodir=DIR info documentation [DATAROOTDIR/info]
--localedir=DIR locale-dependent data [DATAROOTDIR/locale]
--mandir=DIR man documentation [DATAROOTDIR/man]
--docdir=DIR documentation root [DATAROOTDIR/doc/libminigui]
--htmldir=DIR html documentation [DOCDIR]
--dvidir=DIR dvi documentation [DOCDIR]
--pdfdir=DIR pdf documentation [DOCDIR]
--psdir=DIR ps documentation [DOCDIR]

Program names:
--program-prefix=PREFIX prepend PREFIX to installed program names
--program-suffix=SUFFIX append SUFFIX to installed program names
--program-transform-name=PROGRAM run sed PROGRAM on installed program names

System types:
--build=BUILD configure for building on BUILD [guessed]
--host=HOST cross-compile to build programs to run on HOST [BUILD]
--target=TARGET configure for building compilers for TARGET [HOST]

Optional Features:
--disable-option-checking ignore unrecognized --enable/--with options
--disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
--enable-FEATURE[=ARG] include FEATURE [ARG=yes]
--enable-shared=PKGS build shared libraries default=yes
--enable-static=PKGS build static libraries default=yes
--enable-fast-install=PKGS optimize for fast installation default=yes
--disable-dependency-tracking speeds up one-time build
--enable-dependency-tracking do not reject slow dependency extractors
--disable-libtool-lock avoid locking (might break parallel builds)
--enable-videost7167 include st7167 platform dfb video driver
--enable-adv2dapi include advanced 2D graphics APIs
--enable-minimalgdi build a minimal GDI library only
--enable-productid insert a productid into the library file
--enable-splash enable splash
--enable-screensaver enable screensaver
--enable-flatlf include flat Look and Feel renderer
--enable-skinlf include skin Look and Feel renderer
--enable-ownmalloc use own implementation of malloc functions
--enable-ownstdio use own implementation of stdio functions
--enable-ownpthread use own implementation of pthread functions
--enable-procs build MiniGUI-Processes version
--enable-standalone build MiniGUI-Standalone version
--enable-incoreres use incore resource instead file IO to initialize MiniGUI
--enable-miniguientry use minigui_entry function in MiniGUI
--enable-fixedmath include fixed math routines
--enable-debug build with debugging messages
--enable-tracemsg trace messages of MiniGUI
--enable-msgstr include symbol name of message
--enable-dblclk mouse button can do double click
--enable-cursor include cursor support
--enable-clipboard include clipboard support
--enable-customial build the IAL engine for customer's board
--enable-dlcustomial build the dlcustom IAL engine
--enable-netial build the IAL engine for net
--enable-cisco_touchpad_ial build the IAL engine for Cisco Touchpad
--enable-mstar_ial build the IAL engine for MStar
--enable-ipaqh3600ial build the IAL engine for iPAQ H3600
--enable-nexusial build the IAL engine for Nexus
--enable-ipaqh5400ial build the IAL engine for iPAQ H5400
--enable-tslibial build the IAL engine for TSLIB
--enable-dummyial build the Dummy IAL engine
--enable-autoial build the Automatic IAL engine
--enable-randomial build the Random IAL engine
--enable-commial build the COMM IAL engine
--enable-qvfbial build the QVFB IAL engine
--enable-qemuial build the QEMU IAL engine
--enable-wvfbial build the WVFB IAL engine
--enable-jz4740ial build the JZ4740 IAL engine
--enable-lide build the lide IAL engine
--enable-2440ial build the 2440 IAL engine
--enable-davinci6446ial build the DAVINCI6446 IAL engine
--enable-dfbial build the DFB IAL engine
--enable-consoleial build the console (Linux console) IAL engine
--enable-consoleps2 build the console engine subdriver for PS2 mouse
--enable-consoleimps2 build the console engine subdriver for IntelligentMouse (IMPS/2) mouse
--enable-consolems build the console engine subdirver for old MS serial mouse
--enable-consolems3 build the console engine subdirver for MS3 mouse
--enable-consolegpm build the console engine subdirver for GPM daemon
--enable-textmode Linux system have console (text mode) on FrameBuffer
--enable-rbfsupport include raw bitmap font support
--enable-rbfvgaoem include incore RBF font of ISO8859-1 VGAOEM (8x8) font
--enable-rbfterminal include incore RBF font of ISO8859-1 Terminal (8x12) font
--enable-rbffixedsys include incore RBF font of ISO8859-1 FixedSys (8x15) font
--enable-vbfsupport include var bitmap font support
--enable-fontsserif include incore font SansSerif (11x13)
--enable-fontcourier include incore font Courier (8x13)
--enable-fontsystem include incore font System (14x16)
--enable-upfsupport build support for FMSOft's Unicode Prerendered Font (UPF)
--enable-fonttimes include incore Times UPF fonts (12x10 and 17x14)
--enable-qpfsupport build support for Qt Prerendered Font (QPF)
--enable-sefsupport build support for koxomo scripteasy (SEF)
--enable-ttfcache include ttf cache support
--enable-bmpfsupport build support for Bitmap Font (bmpf)
--enable-latin2support include East European (Latin 2, ISO8859-2) charset support
--enable-latin3support include South European (Latin 3, ISO8859-3) charset support
--enable-latin4support include North European (Latin 4, ISO8859-4) charset support
--enable-cyrillicsupport include Cyrillic (ISO8859-5) charset support
--enable-arabicsupport include Arabic (ISO8859-6) charset support
--enable-greeksupport include Greek (ISO8859-7) charset support
--enable-hebrewsupport include Hebrew (ISO8859-8) charset support
--enable-latin5support include Turkish (Latin 5, ISO8859-9) charset support
--enable-latin6support include Nordic, Latin 6, ISO8859-10) charset support
--enable-thaisupport include Thai (ISO8859-11) charset support
--enable-latin7support include Latin 7 (ISO8859-13) charset support
--enable-latin8support include Latin 8 (ISO8859-14) charset support
--enable-latin9support include Latin 9 (ISO8859-15, West Extended) charset support
--enable-latin10support include Latin 10 (ISO8859-16, Romanian) charset support
--enable-gbsupport include EUC encoding of GB2312 charset support
--enable-gbksupport include GBK charset support
--enable-gb18030support include GB18030-0 charset support
--enable-big5support include BIG5 charset support
--enable-euckrsupport include support for EUC encoding of KSC5636 and KSC5601 charsets
--enable-eucjpsupport include support for EUC encoding of JISX0201 and JISX0208 charsets
--enable-shiftjissupport include support for Shift-JIS encoding of JISX0201 and JISX0208 charsets
--enable-unicodesupport include UNICODE (ISO-10646-1 and UTF-8 encoding) support
--enable-kbdhebrewpc include keyboard layout for Hebrew PC keyboard
--enable-kbdarabicpc include keyboard layout for Arabic PC keyboard
--enable-kbdfrpc include keyboard layout for French PC keyboard (non-US 102 keys)
--enable-kbdfr include keyboard layout for French
--enable-kbdde include keyboard layout for German
--enable-kbddelatin1 include keyboard layout for German Latin1
--enable-kbdit include keyboard layout for Italian
--enable-kbdes include keyboard layout for Spanish
--enable-kbdescp850 include keyboard layout for Spanish CP850
--enable-savebitmap include SaveBitmap-related functions
--enable-pcxsupport include PCX file support
--enable-lbmsupport include LBM/PBM file support
--enable-tgasupport include TGA file support
--enable-gifsupport include GIF file support
--enable-jpgsupport include JPG file support
--enable-pngsupport include PNG file support
--enable-menu include menu support
--enable-mousecalibrate include code doing mouse calibration
--enable-aboutdlg include About Dialog Box
--enable-savescreen include code for screenshots
--enable-ctrlstatic include STATIC control
--enable-ctrlbutton include BUTTON control
--enable-ctrlsledit include Single-Line EDIT control
--enable-ctrlbidisledit include Single-Line BIDI EDIT control
--enable-ctrllistbox include LISTBOX control
--enable-ctrlpgbar include PROGRESSBAR control
--enable-ctrlnewtoolbar include NEWTOOLBAR control
--enable-ctrlmenubtn include MENUBUTTON control
--enable-ctrltrackbar include TRACKBAR control
--enable-ctrlcombobox include COMBOBOX control
--enable-ctrlpropsheet include PROPSHEET control
--enable-ctrlscrollview include SCROLLVIEW and SCROLLWINDOW controls
--enable-ctrltextedit include old TEXTEDIT control implementation
--enable-ctrlmonthcal include MONTHCALENDAR control
--enable-ctrltreeview include TREEVIEW control
--enable-ctrltreeview-rdr include TREEVIEWRDR control using LFRDR
--enable-ctrlspinbox include SPINBOX control
--enable-ctrlcoolbar include COOLBAR control
--enable-ctrllistview include LISTVIEW control
--enable-ctrliconview include ICONVIEW control
--enable-ctrlgridview include GRIDVIEW control(test)
--enable-ctrlanimation include ANIMATION control and GIF87a/GIF89a support
--enable-ctrlscrollbar include SCROLLBAR control and GIF87a/GIF89a support
--enable-newtextedit include the new implementation of TEXTEDIT control
--enable-videodummy include dummy NEWGAL engine
--enable-videofbcon include FrameBuffer console NEWGAL engine
--enable-videoqvfb include Qt Virtual FrameBuffer NEWGAL engine
--enable-rtosxvfb include RTOS Virtual FrameBuffer NEWGAL engine . Note: you must disable pcxvfb, if you want to enable rtosxvfb
--enable-pcxvfb include PC Virtual FrameBuffer NEWGAL engine, such as qvfb, mvfb, gvfb or wvfb
--enable-videowvfb include windows Virtual FrameBuffer NEWGAL engine
--enable-videocommlcd include NEWGAL engine for Common LCD
--enable-videomlshadow include MLShadow NEWGAL engine
--enable-videoshadow include Shadow NEWGAL engine
--enable-videoem86gfx include NEWGAL engine for EM86xx GFX
--enable-videoem85xxyuv include NEWGAL engine for EM85xx YUV
--enable-videoem85xxosd include NEWGAL engine for EM85xx OSD
--enable-videosvpxxosd include SVPXXOSD NEWGAL engine
--enable-videobf533 include NEWGAL engine for BF533 OSD via SPI
--enable-videomb93493 include NEWGAL engine for mb93493 YUV FrameBuffer driver
--enable-videoutpmc include NEWGAL engine for UTPMC
--enable-videodfb include NEWGAL engine for DirectFB
--enable-videost7167 include NEWGAL engine for ST7167
--enable-videostgfb include NEWGAL engine for STGFB
--enable-videohi35xx include Hi35xx Video NEWGAL engine
--enable-videohi3560a include Hi3560A Video NEWGAL engine
--enable-videogdl include GDL Video NEWGAL engine
--enable-videosigma8654 include sigma8654 NEWGAL engine
--enable-videomstar include mstar NEWGAL engine
--enable-videocustom include custom NEWGAL engine
--enable-videonexus include nexus NEWGAL engine
--enable-videos3c6410 include s3c6410 NEWGAL engine

Optional Packages:
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
--without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
--with-gnu-ld assume the C compiler uses GNU ld default=no
--with-pic try to use only PIC/non-PIC objects default=use both
--with-ttfsupport=ft1/ft2/none
--with-nexus-includedir=DIR Where to find header files of nexus library
--with-nexus-libdir=DIR Where to find .so files of nexus library
--with-osname=linux/uclinux/ecos/ucos2/swlinux/vxworks/win32/darwin/threadx/cygwin/nucleus/ose/psos
--with-licensepicture=minigui/mdolphin/hybridos
--with-targetname=unknown/stb810/vfanvil/vxi386/qvfb/fbcon/mx21/monaco/c33l05/bfin/vxppc/fmsoft/mstudio/
S3C6410/S3C2440/S3C2410/hi3560a
--with-libsuffix=ARG Configure the suffix of MiniGUI library name.
--with-ttfcachesize=64/128/256/512/1024
--with-mttfcachenum=10/20/40
--with-ft1-includes=DIR where the FreeType1 includes are
--with-ft2-includes=DIR where the FreeType2 includes are

Some influential environment variables:
CC C compiler command
CFLAGS C compiler flags
LDFLAGS linker flags, e.g. -L if you have libraries in a
nonstandard directory
LIBS libraries to pass to the linker, e.g. -l
CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if
you have headers in a nonstandard directory
CPP C preprocessor
/***/

出现
Going to generate license pictures ...
./configure: line 15530: ./runme.sh: No such file or directory
无视之
修改src/newgal/pcxvfb/Makefile 194行,将/usr/include去掉:
INCLUDES = -I$(abs_top_srcdir)/src/include -I$(abs_top_srcdir)/include \
-I$(abs_top_srcdir)/src/newgal/ -I/usr/include/
否则编译pcxvfb.c将出错
make&make install
sudo cp -r /usr/lib/pkgconfig/
.pc 文件指定了编译生成库文件的路径,如果移动库文件必须更改 .pc文件。
/usr/lib/pkgconfig/为 pkgconfig 程序默认寻找路径

6、libmgi-2.0.4
./configure --prefix=$PWD/_install --host=arm-hisiv200-linux LDFLAGS=-L/opt/hisi-linux/x86-arm/arm-hisiv200-linux/arm-hisiv200-linux-gnueabi/lib CFLAGS="-I/opt/hisi-linux/x86-arm/arm-hisiv200-linux/arm-hisiv200-linux-gnueabi/include"
make & make install
sudo cp -r _install/* /opt/hisi-linux/x86-arm/arm-hisiv200-linux/arm-hisiv200-linux-gnueabi/

7、minigui-res-be-3.0.12
./configure --prefix=$PWD/_install --host=arm-hisiv200-linux
make & make install
sudo cp -r _install/* /opt/hisi-linux/x86-arm/arm-hisiv200-linux/arm-hisiv200-linux-gnueabi/
8、mg-samples-3.0.12
./configure --prefix=$PWD/_install --host=arm-hisiv200-linux LDFLAGS=-L/opt/hisi-linux/x86-arm/arm-hisiv200-linux/arm-hisiv200-linux-gnueabi/lib CFLAGS="-I/opt/hisi-linux/x86-arm/arm-hisiv200-linux/arm-hisiv200-linux-gnueabi/include"
{报错:
dlgdemo.c:40:27: 错误:mgplus/mgplus.h:没有那个文件或目录
make[2]: [dlgdemo.o] 错误 1
make[2]: Leaving directory `/mnt/hgfs/F/mg-samples-3.0.12/ctrl_dlg'
make[1]:
[all-recursive] 错误 1
make[1]: Leaving directory `/mnt/hgfs/F/mg-samples-3.0.12/ctrl_dlg'
make: *** [all-recursive] 错误 1
}
解决办法:vim ctrl_dlg/dlgdemo.c ,注释掉mgplus/mgplus.h
make & make install

9、libmgutils-1.0.4
./configure --prefix=$PWD/_install --host=arm-hisiv200-linux LDFLAGS=-L/opt/hisi-linux/x86-arm/arm-hisiv200-linux/arm-hisiv200-linux-gnueabi/lib CFLAGS="-I/opt/hisi-linux/x86-arm/arm-hisiv200-linux/arm-hisiv200-linux-gnueabi/include"
make & make install

声明:本文内容由易百纳平台入驻作者撰写,文章观点仅代表作者本人,不代表易百纳立场。如有内容侵权或者其他问题,请联系本站进行删除。
红包 1 1 评论 打赏
评论
0个
内容存在敏感词
手气红包
    易百纳技术社区暂无数据
相关专栏
关于作者
艾编程的鲁小班

艾编程的鲁小班

一个爱技术的人

原创17
阅读6w
收藏13
点赞20
评论3
打赏用户 0
我要创作
分享技术经验,可获取创作收益
分类专栏
置顶时间设置
结束时间
删除原因
  • 广告/SPAM
  • 恶意灌水
  • 违规内容
  • 文不对题
  • 重复发帖
打赏作者
易百纳技术社区
艾编程的鲁小班
您的支持将鼓励我继续创作!
打赏金额:
¥1易百纳技术社区
¥5易百纳技术社区
¥10易百纳技术社区
¥50易百纳技术社区
¥100易百纳技术社区
支付方式:
微信支付
支付宝支付
易百纳技术社区微信支付
易百纳技术社区
打赏成功!

感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~

举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

审核成功

发布时间设置
发布时间:
是否关联周任务-专栏模块

审核失败

失败原因
备注
拼手气红包 红包规则
祝福语
恭喜发财,大吉大利!
红包金额
红包最小金额不能低于5元
红包数量
红包数量范围10~50个
余额支付
当前余额:
可前往问答、专栏板块获取收益 去获取
取 消 确 定

小包子的红包

恭喜发财,大吉大利

已领取20/40,共1.6元 红包规则

    易百纳技术社区