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

熱點內容
java常用的伺服器 瀏覽:277
集結APP在哪裡下載 瀏覽:798
歐洲cf玩什麼伺服器 瀏覽:527
如何連接另一台電腦上的共享文件夾 瀏覽:679
如何讓桌面文件夾搬家到e盤 瀏覽:71
java自動格式化 瀏覽:617
ipad怎麼查看文件夾大小 瀏覽:581
手工粘土解壓球 瀏覽:550
在線視頻教育源碼 瀏覽:39
快四十學什麼編程 瀏覽:754
gnumakelinux 瀏覽:537
視易峰雲伺服器怎麼改系統 瀏覽:535
javamap取值 瀏覽:768
mac和win磁碟加密軟體 瀏覽:474
蘋果為什麼會連接不到伺服器 瀏覽:726
pdf格式文件如何保存 瀏覽:303
小霸王伺服器tx什麼意思 瀏覽:75
解釋dns命令 瀏覽:584
dmx512怎麼編程 瀏覽:744
北京雲主機17t雲伺服器 瀏覽:232