minigui5.0.2移植到mips平臺多程式模式執行mginit:Can not create task bar
在網上找了一下此問題的解決方法,只有在ubuntu系統上面的解決方法,ldd mginit(此方法在ubuntu上面確實可用),但是在交叉編譯工具鏈上面就不行了。。。
於是乎,直接看程式碼了,看到底在哪個地方返回了HWND_INVALID,通過加列印的方式,找到了CreateMainWindowEx2建立視窗的函式中:
此處傳送了MSG_CREATE的訊息之後出錯了,先不管裡面的實現,把goto err去掉,再重新編譯libminigui,替換相應的procs的庫,在此執行mginit好,這個錯誤消失了。出現了另外的一個錯誤,Out of memory,free看一下目前記憶體大小,才用了2M多,還剩下大約70M記憶體,他不可能使用這麼多的記憶體,於是一路追下去(由於要使用到雙buffer,real buffer,shadow buffer),此錯誤是在使能了compositing之後才出現的,所以找到相應部分程式碼,fbvideo.c檔案中,在相關地方加列印(Out of memory實際上是一個巨集,由於使用到的地方比較多,我們就在幾個地方加列印,看出現的位置),最終找到了__mg_create_anonymous_file(此函式用來建立共享記憶體,程式間通訊用的),
獲取環境變數這個地方。。。我沒設定這個環境變數,於是乎,果斷設定,export MG_RUNTIME_TMPDIR=你自己隨便找一個能寫檔案的目錄。再次執行,完美,沒錯誤。接著執行自己的測試程式,可以正常顯示。
在此記錄一下。。。(加油,沒有的東西,就自己創造,自己解決)
相關文章
- 將 C++程式移植到 Android 平臺C++Android
- Task+ConcurrentQueue多執行緒程式設計執行緒程式設計
- ubuntu移植到嵌入式平臺Ubuntu
- 多執行緒系列(四):Task執行緒
- .net使用Task多執行緒執行任務 .net限制執行緒數量執行緒
- DHCP移植到瑞芯微RK356x平臺
- Spring Task 定時任務 - 多執行緒配置Spring執行緒
- 多執行緒07:async、future、packaged_task、promise執行緒PackagePromise
- 執行緒(一)——執行緒,執行緒池,Task概念+程式碼實踐執行緒
- ros 多執行緒模式ROS執行緒模式
- 多執行緒Reactor模式執行緒React模式
- 執行緒 執行緒池 Task執行緒
- 多執行緒,多程式執行緒
- 【STM32F429】第12章 GUIX Studio生成程式碼移植到硬體平臺GUI
- 簡單的多週期MIPS I CPU設計(二)—— 指令執行階段
- Spark Task 的執行流程② - 建立、分發 TaskSpark
- Python 多執行緒多程式Python執行緒
- pytest(13)-多執行緒、多程式執行用例執行緒
- 手把手教您將libreoffice移植到函式計算平臺函式
- 將30K行Flow程式碼移植到TypeScript - davidgomTypeScriptGo
- 如何將三萬行程式碼從Flow移植到TypeScript?行程TypeScript
- 執行緒以及多執行緒,多程式的選擇執行緒
- pytest多程式/多執行緒執行測試用例執行緒
- Python——程式、執行緒、協程、多程式、多執行緒(個人向)Python執行緒
- 11_QT跨平臺執行之把QT程式交叉編譯到ARM開發板QT編譯
- 多執行緒設計模式之Worker Thread模式執行緒設計模式thread
- Java多執行緒程式設計筆記10:單例模式Java執行緒程式設計筆記單例模式
- vscode中執行gulp的taskVSCode
- 微軟Win10計算器已被移植到Android/iOS/Web平臺微軟Win10AndroidiOSWeb
- 走進Task(2):Task 的回撥執行與 awaitAI
- Spark Task 的執行流程④ - task 結果的處理Spark
- 執行緒同步(windows平臺):事件執行緒Windows事件
- python用什麼平臺執行Python
- Java多執行緒-程式執行堆疊分析Java執行緒
- jenkins後臺程式執行Jenkins
- Android中的多程式、多執行緒Android執行緒
- 入門python多執行緒/多程式Python執行緒
- Python的多程式和多執行緒Python執行緒