九鼎创展论坛中文版English
登录 | 立即注册 设为首页收藏本站 切换到宽版
查看: 2380|回复: 0

T507linux编译错误

[复制链接]
发表于 2022-1-19 10:35:56 | 显示全部楼层 |阅读模式
我最近在编译Linux的时候遇到个错误,就是别人上传源码后他的环境变量也会一起上传,导致我编译的时候会出现某些报错,我在下面一一列举:
1:gdbusauth.c:1302:11: error: ‘%s’ directive argument is null

  1. gdbusauth.c:1302:11: error: ‘%s’ directive argument is null [-Werror=format-overflow=]
  2. 1302 |           debug_print ("SERVER: WaitingForBegin, read '%s'", line);
  3. gdbusmessage.c:2702:30: error: ‘%s’ directive argument is null [-Werror=format-overflow=]
  4. 2702 |       tupled_signature_str = g_strdup_printf ("(%s)", signature_str);
复制代码
首先寻找到这两个文件
  1. sudo find / -name gdbusauth.c
  2. sudo find / -name gdbusmessage.c
复制代码
然后进入目录 打开
  1. sudo vi gdbusauth.c

  2. #进入vi编辑器  根据错误找到第1302行  可在一般模式输入1302gg移动到该位置
  3. #在错误前输入    if(line != NULL)
  4. #:wq退出保存

  5. 同理

  6. sudo vi gdbusmessage.c

  7. #进入vi编辑器  根据错误找到第2702行  可在一般模式输入2702gg移动到该位置
  8. #在错误前输入    if(signature_str!= NULL)
  9. #:wq退出保存
复制代码
完成之后再重新编译,编译后可能会发现第二个错误
2:gawk编译ibgpg-error-1.33出错
  1. strerror-sym.c:45:13: warning: implicit declaration of function 'errnos_msgidxof'; did you mean 'msgidxof'? [-Wimplicit-function-declaration]
  2.        idx = errnos_msgidxof (code);
  3.              ^~~~~~~~~~~~~~~
  4.              msgidxof
  5. strerror-sym.c:47:9: error: 'errnos_msgstr' undeclared (first use in this function)
  6.   return errnos_msgstr + errnos_msgidx[idx];
  7.          ^~~~~~~~~~~~~
  8. strerror-sym.c:47:9: note: each undeclared identifier is reported only once for each function it appears in
  9. strerror-sym.c:47:25: error: 'errnos_msgidx' undeclared (first use in this function); did you mean 'errnos_msgstr'?
  10.   return errnos_msgstr + errnos_msgidx[idx];
  11.                          ^~~~~~~~~~~~~
  12.                          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
并找到

  1. !header {
  2.   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”,改为自己的路径,就可以了。





























































回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳市九鼎创展科技官方论坛 ( 粤ICP备11028681号-2  

GMT+8, 2024-3-28 20:54 , Processed in 0.023334 second(s), 18 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表