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

熱點內容
思科路由器命令手冊 瀏覽:26
android獲得當前activity 瀏覽:829
python入門迷宮 瀏覽:69
Python打折代碼不含商品 瀏覽:220
把多個Word合成一個pdf 瀏覽:356
aes演算法描述 瀏覽:899
新手機壓縮包在哪 瀏覽:781
java抽獎程序源碼 瀏覽:700
汽車壓縮機又叫 瀏覽:95
android讀取data文件 瀏覽:874
紅旗智聯app怎麼跟h5車子連接 瀏覽:139
材料化學pdf 瀏覽:114
伺服器機房都有什麼東西 瀏覽:370
最近長陰短柱量能副圖指標源碼 瀏覽:647
python字元串去除後四位 瀏覽:167
捷速pdf編輯器破解版 瀏覽:726
大帶寬伺服器怎麼租 瀏覽:299
籃球程序員單身難嗎 瀏覽:877
一接到命令就 瀏覽:488
挖幣伺服器是什麼 瀏覽:524