导航:首页 > 源码编译 > 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编译报错相关的资料

热点内容
app上不去网怎么设置 浏览:208
phpjava运行效率 浏览:234
php查询数据库条数 浏览:27
程序员一族 浏览:930
绍兴程序员兼职在哪里接 浏览:673
身为程序员是什么体验 浏览:559
51单片机应用从零开始pdf 浏览:575
深圳分销软件源码定制 浏览:922
车尔尼599pdf 浏览:270
android图表动态 浏览:932
加密锁升级后可以打开低版本吗 浏览:914
phpforeach循环输出 浏览:556
宝马编程器电压 浏览:877
网络工程转做程序员要培训多久 浏览:414
python中fromkeys 浏览:458
土着生活app怎么样 浏览:552
加密权限怎么取消 浏览:16
为什么高端安卓机抛弃sd卡 浏览:306
php语言结构函数 浏览:131
python爬虫抓取div 浏览:225