导航:首页 > 源码编译 > 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