導航:首頁 > 源碼編譯 > qmk編譯報錯

qmk編譯報錯

發布時間:2022-12-10 06:01:00

A. 執行qmke時出錯,特來求教

1 編譯階段,執行的是對單個文件的轉換,從源代碼轉換成二進制文件。2
鏈接階段,將每個源文件轉成的二進制文件,及相關的系統庫文件共同打包生成可執行文件。3 從定義上可以看出,鏈接階段,出現錯誤有兩種可能:1)
函數中引用了不存在的函數。2) 編譯環境有問題,導致ld出錯。

B. 如何在aix環境下生成動態鏈接庫

libwrapper.so: $(libwrapper_so_OBJECTS)
@echo ${COMPILE}
@echo $(libwrapper_so_OBJECTS)
${COMPILE} -shared $(libwrapper_so_OBJECTS) -o $(LIB)/libwrapper.so
# ${COMPILE} -qmkshrobj $(libwrapper_so_OBJECTS) -o $(LIB)/libwrapper.so

linux下編譯沒有問題,但是在AIX下編譯會報如下錯誤
xlc -DAIX -c -I/usr/java14/include -I/usr/java14/include/aix wrapperinfo.c
xlc -DAIX -shared wrapperjni_unix.o wrapperinfo.o wrapperjni.o -o ../../lib/libwrapper.so
ld: 0706-012 The -h flag is not recognized.
ld: 0706-012 The -a flag is not recognized.
gmake: *** [libwrapper.so] Error 255

百思不得其解,網上一查,很多類似情況,但都沒有解決方法,最後試著將Makefile修改如下
libwrapper.so: $(libwrapper_so_OBJECTS)
@echo ${COMPILE}
@echo $(libwrapper_so_OBJECTS)
# ${COMPILE} -shared $(libwrapper_so_OBJECTS) -o $(LIB)/libwrapper.so
${COMPILE} -qmkshrobj $(libwrapper_so_OBJECTS) -o $(LIB)/libwrapper.so
編譯通過,問題解決。
現在來想,可能是AIX下生成動態庫使用的編譯器選項為-qmkshrobj,而不是-shared造成的。
至於報-h和-a選項標識錯誤,估計是連接器不認識-shared選項,故而當作-s,-h,-a,-r,-e,-d選項來對待,
而恰巧支持-s,-r,-e選項,而不支持-h,-a選項,所以出現該錯誤。

C. 執行qmke時出錯,特來求教

D. promicro 刷qmk失敗

刷機前請將刷機工具上面的DA DL ALL WITH CHECK SUM勾上刷一遍即可
解決辦法:(http://pan..com/s/1i3eKPxz)
報錯1002
解決辦法:換刷機工具!
報錯1003
解決辦法:換平台,建議換共享6752最新平台刷!
報錯1011
解決辦法:平台錯誤,換對應MTK刷機平台!fat文件不勾選即可。
報錯1012
解決辦法:實戰換尾插解決!
報錯1013
解決辦法:打開埠失敗,重新聯機或者拔掉數據線換個USB插口即可!
報錯1014
解決辦法:資料CPU不對,如6577刷成6575的資料,換資料解決!
報錯1018
解決辦法:基帶加密,換原廠加密刷機工具!
報錯1022
解決辦法:1、刷機軟體版本和手機不匹配,換刷機工具!2、數據線,電腦介面等也會引起!

E. pro文件和pri文件

QT中,qmake為編譯工具,通過qmke可以生成一個makefile文件,這就和pro文件有關,下面介紹pro文件的寫法:

TELEPLATE :模板

app:默認不寫時為app,即應用程序的makefile。

lib :建立一個庫的makefile。

TARGET:生成應用程序名

CONFIG:配置信息

CONGIF += qt  warn_on release

分別意思是,告訴qmake這個應用程序是使用QT連編的,這就是說qmake再連接和為編譯添加所需要的包含路徑的時候會考慮到用qt庫。warm_on告訴qmake要把編譯器設置為輸出警告信息的。release告訴應用程序必須被連編成一個發布版本。開發過程中可設置為也可以為debug版本。

INCLUDEPATH:頭文件包含路徑

CODECFORSRC = gbk :源文件編碼方式

#工程中的源文件和頭文件

SOURCES += 

HEADERS +=

RESOURCES += qrc/painter.qrc //  工程中包含的資源文件

FORMS += forms/painter.ui  //  工程中包含的ui設計文件

LIBS += -l(庫名)

#平台相關

win32 {

SOURCES += hello_win.cpp

}

unix{

LIBS +=-lcur3

}

如果項目工程大文件多:

可以將SOURCES,HEADERS ,FORMS單獨拿出來放到單獨一個test.pri文件中,然後在pro文件中用 include(test.pr)進行管理。

pro文件中$和$$符號含義和用法:

包含pri文件:

自定義變數 :

BASEDIR = .. /.. /.. /.. /

include ( $$ { BASEDIR } pri / common.pri )

include ( $$ { BASEDIR } pri / baseapk.pri )

INCLUDEPATH += $$ { BASEDIR } include

INCLUDEPATH += $$ { BASEDIR } include / forecastbusiness

自定義變數:

myVersion = 1.2

TARGET = software $$ { myVersion }

FILE = main.cpp

SOURCES += $$ FILE

重新qmake 後正確生成目標程序為software1.2的工程。

F. 執行qmke時出錯,特來求教

1 編譯階段,執行的是對單個文件的轉換,從源代碼轉換成二進制文件。2 鏈接階段,將每個源文件轉成的二進制文件,及相關的系統庫文件共同打包生成可執行文件。3 從定義上可以看出,鏈接階段,出現錯誤有兩種可能:1) 函數中引用了不存在的函數。2) 編譯環境有問題,導致ld出錯。

G. 怎麼在aix里編譯.sql文件

先檢查你的編譯器是什麼編譯器: 看是gcc還是cc,下面是cc版本的 編譯成32位版本: cc -q32 -qmkshrobj -o XXXXXX.so XXXXXX.c 編譯成64位版本: cc -q64 -qmkshrobj -o XXXXXX.so XXXXXX.c

H. 求教:aix下動態鏈接庫*.so文件如何編譯出來

先檢查你的編譯器是什麼編譯器:
看是gcc還是cc,下面是cc版本的
編譯成32位版本:
cc -q32 -qmkshrobj -o XXXXXX.so XXXXXX.c
編譯成64位版本:
cc -q64 -qmkshrobj -o XXXXXX.so XXXXXX.c

閱讀全文

與qmk編譯報錯相關的資料

熱點內容
肺組織壓縮15 瀏覽:267
安卓手機為什麼換電話卡沒反應 瀏覽:793
諸子集成pdf 瀏覽:336
php注冊框代碼 瀏覽:714
手機加密好還是不加好好 瀏覽:814
別克凱越壓縮機泵頭多錢 瀏覽:239
組管理命令 瀏覽:979
海南高德司機端是什麼app 瀏覽:861
pid命令 瀏覽:888
一天一圖學會python可視化 瀏覽:309
魔獸編輯文本命令串 瀏覽:497
android中view繪制 瀏覽:798
安卓機內存刪除怎麼恢復 瀏覽:331
Qt環境的編譯軟體放到linux 瀏覽:214
聯創列印系統怎麼連接伺服器 瀏覽:937
杭州行政命令 瀏覽:160
如何查找伺服器日誌 瀏覽:801
加密的鑰匙扣怎麼寫 瀏覽:579
文件夾更新不了怎麼辦 瀏覽:475
壓縮機指示燈亮是什麼原因 瀏覽:956