九鼎创展论坛
标题:
T507linux编译错误
[打印本页]
作者:
九鼎刘工
时间:
2022-1-19 10:35
标题:
T507linux编译错误
我最近在编译Linux的时候遇到个错误,就是别人上传源码后他的环境变量也会一起上传,导致我编译的时候会出现某些报错,我在下面一一列举:
1:gdbusauth.c:1302:11: error: ‘%s’ directive argument is nul
l
gdbusauth.c:1302:11: error: ‘%s’ directive argument is null [-Werror=format-overflow=]
1302 | debug_print ("SERVER: WaitingForBegin, read '%s'", line);
gdbusmessage.c:2702:30: error: ‘%s’ directive argument is null [-Werror=format-overflow=]
2702 | tupled_signature_str = g_strdup_printf ("(%s)", signature_str);
复制代码
首先寻找到这两个文件
sudo find / -name gdbusauth.c
sudo find / -name gdbusmessage.c
复制代码
然后进入目录 打开
sudo vi gdbusauth.c
#进入vi编辑器 根据错误找到第1302行 可在一般模式输入1302gg移动到该位置
#在错误前输入 if(line != NULL)
#:wq退出保存
同理
sudo vi gdbusmessage.c
#进入vi编辑器 根据错误找到第2702行 可在一般模式输入2702gg移动到该位置
#在错误前输入 if(signature_str!= NULL)
#:wq退出保存
复制代码
完成之后再重新编译,编译后可能会发现第二个错误
2:gawk编译ibgpg-error-1.33出错
strerror-sym.c:45:13: warning: implicit declaration of function 'errnos_msgidxof'; did you mean 'msgidxof'? [-Wimplicit-function-declaration]
idx = errnos_msgidxof (code);
^~~~~~~~~~~~~~~
msgidxof
strerror-sym.c:47:9: error: 'errnos_msgstr' undeclared (first use in this function)
return errnos_msgstr + errnos_msgidx[idx];
^~~~~~~~~~~~~
strerror-sym.c:47:9: note: each undeclared identifier is reported only once for each function it appears in
strerror-sym.c:47:25: error: 'errnos_msgidx' undeclared (first use in this function); did you mean 'errnos_msgstr'?
return errnos_msgstr + errnos_msgidx[idx];
^~~~~~~~~~~~~
errnos_msgstr
复制代码
解决方案:
找到libgpg-error-1.33编译包的位置,并分别找到这几个文件:
libgpg-error-1.33/lang/cl/mkerrcodes.awk
libgpg-error-1.33/src/mkerrcodes.awk
libgpg-error-1.33/src/mkerrcodes1.awk
libgpg-error-1.33/src/mkerrcodes2.awk
libgpg-error-1.33/src/mkerrnos.awk
libgpg-error-1.33/src/mkstrtable.awk
并找到
!header {
sub (/\#.+/, "");
复制代码
将上诉所有文件中的所有"sub (/\#.+/, “”);",改为:“sub (/#.+/, “”);”,也就是说最新的gawk能够识别到’#'号不需要使用转义字符(‘\‘)的帮助
最后找到,如下几个文件:
libgpg-error-1.33/src/Makefile
libgpg-error-1.33/src/Makefile.am
libgpg-error-1.33/src/Makefile.in
libgpg-error-1.33/src/mkstrtable.awk
打开上述文件,搜索“namespace”,将所有搜索到的结果替换为“pkg_namespace”
然后必要clean,运行编译命令重新编译就ok了
如果是直接拷贝别人已经编译过的T5的SDK进行编译,那么可能会出现编译成功后,Makefile交叉编译工具路径设置正确, 但是在make实例中的sdk_demo时,会出现找不到编译工具的问题。这时找到sdk_demo所在目录的makefile_cfg文件,打开它并将LICHEE_BR_OUT=“path”,改为自己的路径,就可以了。
欢迎光临 九鼎创展论坛 (http://bbs.9tripod.com/)
Powered by Discuz! X3.2