導航:首頁 > 源碼編譯 > 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編譯報錯相關的資料

熱點內容
php語言結構函數 瀏覽:129
python爬蟲抓取div 瀏覽:223
excel表格如何把文件夾調換位置 瀏覽:678
java中會存在內存泄漏 瀏覽:366
游戲中心的加密密碼是多少 瀏覽:618
同事喜歡命令 瀏覽:429
程序員300字 瀏覽:945
pubg如何開自定義伺服器 瀏覽:81
linuxshellif包含字元串 瀏覽:301
設置裡面的郵箱怎麼登錄安卓 瀏覽:718
androidwebview電話 瀏覽:249
為什麼優盤里的文件夾都不見了 瀏覽:604
單車旅行pdf 瀏覽:268
手機桌面合並文件夾打不開 瀏覽:436
linuxcnull 瀏覽:269
javaformat字元 瀏覽:677
精打細算的程序員 瀏覽:880
android游戲開發工具 瀏覽:788
javaobject判空 瀏覽:31
手機檢查源碼後門軟體 瀏覽:680