MiniGUI相關

1.如何查看已安裝的MiniGUI是哪種模式?

打開/usr/local/include/minigui目錄下的mgconfig.h文件查看

cd  /usr/local/include/minigui
vim mgconfig.h

在這裏插入圖片描述
如圖,我的MiniGUI設置的模式爲MiniGUI-Processes模式。

2.報錯解決方法集合

  • (1) 程序編譯時報錯一
    開始我寫好hello.c即將編譯,運行命令gcc hello.c -o hello報錯:

    在xx函數中,對‘xxx’未定義的引用
    在這裏插入圖片描述
    解決方法:minigui中.c程序的編譯需要連接動態庫,語句改爲

$ gcc  -o hello hello.c -lminigui_procs -ljpeg -lpng -lz
  • (2) 程序編譯報錯二
    運行(1)中的語句解決了之前的錯誤,又出現了新的錯誤
    在這裏插入圖片描述
    解決方法:此種報錯說明編譯時缺少某種庫(具體缺少哪一種庫需要根據報錯具體分析,注意報錯的語句中相同的關鍵字)
    圖片中的報錯缺少的時freetype庫,可以先到目錄/usr/local/lib下查看是否有freetype的so文件,如果有,直接執行下面的語句,如果沒有,需要安裝相應的軟件。
$ gcc  -o hello hello.c -lminigui_procs -ljpeg -lpng -lz -lfreetype

解決!

  • (3) 編譯好的程序運行時./hello報錯
InitGUI(step 4):Can not start client (please run mginit first)!

解決方法:先到目錄/mg-sample-3.2.2/src下運行./mginit
注意:在啓動mginit後需要重新開一個終端,到程序所在目錄運行./hello即可成功!

  • (4) 運行./mginit 時報錯一
InitGUI (step 3): There is already an instance of 'mginit'!

解決方法:

$ sudo rm /var/tmp/mginit
  • (5) 運行./mginit 時報錯二
LoadSharedResource: File exists
InitGUI (step 8): Can not load shared resource

解決方法:

 $ ipcs -st

多進程間通信常用的技術手段包括共享內存、消息隊列、信號量等等,Linux系統下自帶的ipcs命令是一個極好的工具,可以幫助我們查看當前系統下以上三項的使用情況,從而利於定位多進程通信中出現的通信問題。

$  ipcrm -s (semid)

注意:括號裏的semid是上一個語句查詢列出的id數字,刪除所有的信號量。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章