日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

MINIGUI常见错误集及解决方法

發布時間:2024/1/23 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MINIGUI常见错误集及解决方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

MINIGUI常見錯誤集及解決方法

個人前言:其中錯誤1到16是直接轉載的一篇博客,在移植MiniGUI過程中碰到的問題遠遠不止這些,我只是拿這16個先開個頭,以后會將我自己在移植MiniGUI的過程中碰到的問題逐一附上。


網上摘抄的版本一:
1:一般網上都是說動態編譯MiniGUI,然后把編譯好的可執行文件和 MiniGUI的庫,資源文件和配置文件拷貝到linux的根文件系統,但是如果是這樣必然還要拷貝ld.so和lib.c.so,后者相當大,好象不太可行.我就想看看靜態編譯一個應用程序如何,但是出錯(動態編譯這個應用程序是對了的,libminigui是事先編好了的,有*.so和*.a),它報了一些數學的庫函數未解析,如sqrt等,而且是libminigui.a報的,不太明白.我想有高手靜態編譯過嗎,幫忙解決一下.多謝!!

問題找到了。
原來是在靜態編譯的時候沒有指定lm 所以數學函數庫才找不到.
arm-linux-gcc -o -static -lminigui -lpthread -lm -I /~~~/include -L /~~~/lib
肯定成功.

2:
[root@localhost bomb]# ls
bomb bomb.c bomb.o Makefile Makefile.am Makefile.in res
[root@localhost bomb]# ./bomb
AttachSharedResource: No such file or directory
Error in step 7: Can not attach shared resource!
InitGUI failure when using /usr/local/etc/MiniGUI.cfg as cfg file.
請問這是怎么回事情?謝謝


你運行的進程版的客戶端程序,需要在之前運行一服務器程序mginit。

3:
交叉編譯的時候,設置項build=i686-pc-linux-gnu target=ppc-linux host=i386-linux這是手冊上說的 但是也有人說build=target=ppc-linux host=i686-pc-linux-gnu ,這兩種有什么區別呀?哪一種對?

去網站下載資料看一下,根據開發板/系統的不同,配置也不盡相同

4:
我在皮膚窗口中要用多MiniGUI控件-進度條,在設定進度條的位置時,用到SendMessage函數是,第一個參數HWND,我理解應該是進度條控件的句柄,在皮膚窗口中用什么函數可以得到這個句柄?請指教!謝謝!

皮膚元素稍微特殊一點,需要用特定的函數來獲取
HWND skin_get_control_hwnd (skin_head_t* skin,int id);
可以通過皮膚元素的id來獲取其所窗口句柄

5:
請問libminigui-str-1.6.2如何交叉編譯?我已正常在PC上安裝了libminigui-str-1.6.2,并且成功編譯了mde- 1.6.0,通過qvfb在PC機可以運行了.現在我想移栽到ARM,看資料說要交叉編譯libminigui-str-1.6.2,并安裝,可我試過不成功.是如何交叉編譯libminigui-str-1.6.2?有比較好的資料介紹嗎?

小羅自己回答:沒有交叉編譯安裝。

6:
minigui的newgal是否支持翻轉屏。

支持,但僅在增值版中支持;我看過V 1.6.8的說明文檔,不明白要如何配置;我想要翻轉屏,可用./configure --enable-coortrans_cw 只有觸摸屏轉過來,LCD沒轉

7:
如何為主界面添加背景圖片?!急,先謝了!

使用這幾個函示即可完成。
hdc=BeginPaint(hwnd);
LoadBitmap (hdc, &bitmap, "xxx.jpg");
FillBoxWithBitmap (hdc, 0, 0, 200, 200, &bitmap);
UnloadBitmap(&bitmap);
EndPaint(hwnd,hdc);

8:
為什么MiniGUI源碼中許多函數前都有GUIAPI?例如:
void GUIAPI SetAutoRepeatMessage (HWND hwnd, int msg, WPARAM wParam, LPARAM lParam)
在頭文件common.h中,對GUIAPI的定義是
#define GUIAPI
這表示什么意思,指返回類型,還是表示可被上層應用程序調用的函數?
請高手們指教,多謝:

定義調用方式而已,比如,編譯MINIGUI庫的時候,如果是采用windows下的DLL方式,則定義GUIAPI __declspec(dllexport),而編譯應用程序的時候,定義GUIAPI 為__declspec(dllimport)就可以了。

9:
我按照xiaocong給的步驟修改了
還是不行,現在qvfb也大不開,下邊是報錯信息:
QSettings: failed to open file '/usr/lib/qt-3.1/etc/settings/qt_plugins_3.1rc'
Cannot open mouse pipe
我編譯程序的時候報錯如下:
GDI: Error in loading vbf fonts!
GDI: Can not initialize var bitmap fonts!
DESKTOP: Initialization of GDI failure!
InitGUI failure when using /usr/local/etc/MiniGUI.cfg as cfg file.
有知道是怎么回事的麻煩給我解釋下,謝謝.

小羅自己回答:Minicom.cfg 配置不對。

10:
error while loading shared libraries: libminigui-1.6.so.8: cannot open shared object file: No such file or directory
是怎么回事?

小羅自己回答:ld.so.conf 沒有加入 /usr/local/lib;或者沒有運行 ldconfig;這是必須的。更新庫的鏈接。

11:
請大家幫個忙,好嗎?
我在ARM92410上運行mginit出現如下:
loadSharedResource: No Such file or directory
error in step8:can not load shared resourc

先把mginit運行起來!

12:
在PC上安裝MiniGUI-STR V1.6.2時libminigui和minigui的資源時都沒出現錯誤
但make應用程序例子時出現下面錯誤
helloworld.c:21:31: minigui/mywindows.h: 沒有那個文件或目錄
make[1]: *** [helloworld.o] 錯誤
make[1]: Leaving directory `/root/mg-samples-str-1.6.2-host/src'
make: *** [install-recursive] 錯誤 1

第一個問題:你打開helloworld.c文件,把#<mywindows.h>這句注釋掉,在編譯

13:
剛開始學minigui,配置了1.3的環境,mde運行正常。寫了一個hello.c,
gcc -o hello hello.c -lpthread -lminigui -ljped -lpng -lz -lttf
運行后,
‘HWND-DESKTOP’ undeclared;
'MB_OK'undecared
哪位指點下怎么修改?

這兩個變量沒有定義,HWND-DESKTOP 'MB_OK',
#define HWND-DESKTOP 150
#define MB_OK 160

14:
錯誤信息如下:
./mginit: error while loading shared libraries: cannot open shared object file: cannot load shared object file: No such file or directory
解決辦法:/usr/lib/目錄下面沒有對應的庫文件,或者就是沒有/usr/lib/這個目錄,在/usr/目錄下面建立lib/目錄,然后拷入對應的庫文件,就可以解決這個問題。

15:
EWGAL: Does not find matched engine: fbcon.
GDI: Can not get graphics engine information!
InitGUI failure when using /usr/local/etc/MiniGUI.cfg as cfg file.
修改libminigui-1.3.3/src/newgal/fbcon下的fbvideo.c
將/dev/fb0修改成/dev/fb/0
一共有兩處

16:
如果啟動時提示init錯誤,可以考慮給lilo傳遞init參數:init=/bin/sh rw3.如果miniGUI啟動錯誤,考慮可能是以下原因:A)沒有啟動framebuffer,即lilo.conf 中的vga=XXXX,顯示模式參照表如下:640x480 800x600 1024x768 1280x1024256 0x3010x3030x3050x30732k 0x3100x3130x3160x31964k 0x3110x3140x3170x31A16M 0x3120x3150x3180x31BB)啟動了framebuffer,但無fb 設備文件,可以自己創建/dev/fb0文件:mknod fb0 c 29 0C)miniGUI需要/var/tmp目錄,如果不存在也會導致錯誤;hMainWnd = CreateMainWindow (&CreateInfo)

17:
在執行 ldconfig -r /opt/rootfs //配置根文件
后出現如下提示:
[root@dejunweb /]# ldconfig -r /opt/rootfs
ldconfig: /lib/libminigui-1.6.so.9 is not a symbolic link
ldconfig: /lib/libmgext-1.6.so.9 is not a symbolic link
ldconfig: /lib/libvcongui-1.6.so.9 is not a symbolic link

之后你會在 /opt/rootfs/etc/[ld.so.cache ld.so.conf]

?

Can not attach shared resource


Hi,

I downloaded The MiniGUI V2.0.3 Development Package, installed the rpm. When i try to run one of the examples of the example package the following error occurs:

AttachSharedResource: No such file or directory
Error in step 8: Can not attach shared resource!

I try to run the examples from a fbdeb enabled console with these environment settings:

export gal_engine=fbcon
export defaultmode=800x600-16bpp
export ial_engine=console
export mdev=/dev/mouse
export mtype=IMPS2

I have no idea of what 's going on. Any help is appreciated.


Regards,

answer:
The dev package configured MiniGUI as MiniGUI-Processes. You should run mginit first. Mginit is the server of MiniGUI-Processes. Once mginit started, you can start other client programs.


網上摘抄的版本2(大漠孤狼移植MiniGUI1.3.3版本):

一些常見的問題

這幾天遇到不一些問題,發現論壇上也基本上沒人回答我,所以只好自己解決了,這里把一些問題寫出來,方便有需要的人:

問題1:在板子上跑的程序都顯示 can not find qvfb … 之類,可是我只是想讓它在板子上跑在 FrameBuffer 之上啊?

解決:在編譯 libminigui 的時候,把
[ ] Use incore (built-in) resource //建議不要選這個,老有問題
[ ] NEWGAL engine on Qt Virtual FrameBuffer //建議不要選這個,不然老讓你用qvfb


問題2:編譯的時候老出現 unreferenced to vbf_Courier8x8() 之類的問題

解決:
[ ] Var bitmap font //千萬不要選這個,不然會出現 unreferenced vfb_Courier8x8() 之類的錯誤


問題3:一切都搞定了,可是執行 mginit() 的時候就崩潰了,把所有的寄存器值打印了出來,然后顯示了個 Abort() 就退出了!

解決:
[ ] IME (GB2312) Intelligent Pinyin module //千萬不要選這個,不然后面你的 mginit 程序一啟動就崩潰了


問題4: 為什么我執行 helloword 就顯示 “Can not attach shared resource!”

解決:
注意: 因為你的 minigui 是按 Lite 模式編譯的,如果必須 mginit 首先運行起來,你其它的程序(比如 bomb ,或是 helloword)才能執行,如果 mginit 沒有運行起來你就執行 helloword 的話,就會顯示錯誤

“ Can not attach shared resource ! ”

問題5:怎么把自己的程序加到 minigui 的 taskbar 上去,并且排在前面??

解決:
查看 mginit 目錄下的 mginit.rc 文件,里面就是配置,我想你能看明白的:)


問題6:為什么我的程序顯示 can not find libminigui.so ??

解決:你是否忘了在 etc/ld.so.conf 中加入 /usr/local/lib ,并且執行 ldconfig 程序? 看前面說的方法


網上摘抄的版本3:

MiniGUI初始化一些問題以及解決辦法。

按照以上的方法運行mginit的時候會出現一些問題,按照上面MiniGUI.cfg配置運行的話會出現:

問題1

[root@FriendlyARM mginit]# ./mginit

640x480 LCD

GAL ENGINE: Can't open /dev/tty0: No such file or directory

NEWGAL: Set video mode failure.

Error in step 3: Can not initialize graphics engine!

InitGUI failure when using /usr/local/etc/MiniGUI.cfg as cfg file.

解決方法:

#mknod /dev/tty0 c 4 0

這樣在運行mginit的時候還會有錯誤,如下:

問題2

LoadSharedResource: No such file or directory

Error in step 7: Can not load shared resource!

InitGUI failure when using /usr/local/etc/MiniGUI.cfg as cfg file.

[root@FriendlyARM mginit]#

解決方法:

mkdir /var/tmp

這樣就可以看到minigui初步界面了,如果強制退出的話,在下次運行mginit的話會出現下面的問題:

問題3

Error in step 3: There is already an instance of 'mginit'!

解決方法:

刪除/var/tmp目錄下的2minigui的文件。

?


自己在進行MiniGUI移植的時候所碰到的問題:?

首先是移植MiniGUI1.6.10到ARM平臺(YLP2440開發板)上所碰到的問題

1:新安裝好的ubuntu9.10并不適合研究開發,需要裝一些必需到依賴文件(具體見嵌入式軟件開發及C語言實現-MiniGUI剖析一書的附錄),否則在LINUX Pc上安裝miniguiqvfb老出錯.

2:安裝依賴庫。

比較難安裝的是jpegttfjpeg見前面所提到的第二篇參考文章,ttf需要全手動安裝,見大漠孤狼文章。

3:參考大漠孤狼移植MiniGUI文章的時候的一些細節:

參考文章中提到要手動修改GCC,LD等,還建立軟連接與備份等,事實證明在本次實驗中并不需要,如libz,參考文章說不支持交叉編譯,經我實驗,本次用到到zlib1.2.3支持,所以關于文章中建立GCC的符號鏈接與備份可略去不看。

還有文章說minigui1.33在鏈接庫時老鏈接/usr/lib下,這個1.6.10沒有這個問題。

再有交叉編譯minigui時,大漠孤狼文章中用的是1.33,支持圖形化配置,1.6.10不支持圖形化配置,只能用寫腳本來配置。

4 :制作根文件系統。

看到好多參考文章上說,直接能把板子上的庫,配置文件等考到相應的目錄下,但是YLP2440開發板所提供的根文件系統是CRAMFS格式的,在燒到板子上之后不能對目錄下的文件進行拷貝,移動,修改等操作。所以我不得不自己做一個根文件系統。

在做根文件系統中,重點是用busybox生成系統程序與系統初始化,系統程序是編譯完busybox后自動生成的,而系統初始化需要自己來完成,主要是兩個文件:inittabfstab.具體制作請參考嵌入式軟件開發及C語言實現-MiniGUI剖析一書中2.7.4構建根文件系統一節。另外需要minigui應用程序所需要到鏈接庫,Minigui配置文件,Minigui資源文件,其中Minigui配置文件的IAL,GAL需根據實際板子來調。

5:制作根文件系統時,如果沒有/etc/inittab/etc/fstab文件,即沒有做系統初始化工作,則進不了根文件系統,老報以下錯誤:unable to open an initial console

6 :如果出現以下錯誤:

NEWGAL:Does not found matched engine:fbcon

InitGUI:can not get graphics engines information

則應該在PC上交叉編譯minigui之前在libminigui1.6.10/src/newgal/fbcon目錄下修改fbvideo.c文件,將出現的/dev/fb0修改為/dev/fb/0(注:一共有兩處需要修改)

至于修改的原因我認為是因為設備文件系統的問題,詳情請見劉淼編的嵌入式系統接口設計與LINUX驅動程序開發一書中第二章2.4.317頁關于devfs的一些問題。

7:若出現NEWGAL>FBCON:can't open /dev/tty0 No such file or directory

NEWGAL:set video mode failure

InitGAL:cannot initialize graphics engine!

則在/etc/init.d/rcS中添加/bin/ln -s /dev/vc/0?? /dev/tty0即可

8:如果minigui庫和安裝的依賴庫在/usr/local/lib目錄下,則一定要在ld.so.conf中加入了/usr/local/lib,并執行ldconfig -r /opt/rootfs.目的是讓Minigui應用程序找到所需要鏈接的庫。

然后是將MiniGUI1.6.10移植到SPARC平臺(gr-xc3s-1500即LEON3開發板):??

這個移植的非常順利,原因如下:有賀明師兄移植成功的經驗與日志可參考;賀明師兄移植時候交叉編譯的各種庫可以拿來直接用;LEON3的操作系統操作起來非常方便,它把bootloader,kernel,fs做到一起了,而且fs是initramfs,在將操作系統燒到板子上后,可以對目錄下的文件進行各種操作(復制,移動,修改等),這樣就免去了自己做根文件系統的麻煩;移植過程中,只需在MiniGUI.cfg文件中修改輸入輸出引擎即可,無須額外添加輸入輸出引擎了,方便的很;

?

碰到的問題:??

1:LEON板子NFS老是出問題,后來查出是LEON硬件配置的問題

2:LEON板子跑MiniGUI應用程序顯示的界面不全,只有窗口框架與光標,無控件與菜單,后查出亦是LEON硬件配置的問題

3: LEON板子在unbuntu9.10上軟件配置,make時,出現與sumvision文件有關的錯誤時,在sumvision.c文件中添加#include<limits.h>,即可編譯通過

3:LEON板子軟件配置后,出不來字符終端界面,后查出是在軟件配置時,在VGA顯示上將x寫成*,系統不識別的緣故

4:出現relocation error:/lib/libpthread.so.0:symbol_errno, version GLIBC_2.0 not defined in file libc.so.6 with link time reference.

解決辦法:建立libpthread.so向libpthread.so.0的符號鏈接,即ln -s ./libpthread.so.0 ./libpthread.so

總結

以上是生活随笔為你收集整理的MINIGUI常见错误集及解决方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。