buildroot 编译项目出现的一些error

[Makefile:3547: libgio_2_0_la-gdbusauth.lo] Error 1

  • error
gdbusauth.c: In function ‘_g_dbus_auth_run_server’:
gdbusauth.c:1298:11: error: ‘%s’ directive argument is null [-Werror=format-overflow=]
 1298 |           debug_print ("SERVER: WaitingForBegin, read '%s'", line);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  • 解決
修改output/mesonaxg_s400_32_release/build/host-libglib2-2.50.2/gio/gdbusauth.c 

- debug_print ("SERVER: WaitingForBegin, read '%s'", line);                    
if (line == NULL)
goto out;
+ debug_print ("SERVER: WaitingForBegin, read '%s'", line);  

libgio_2_0_la-gdbusmessage.lo] Error 1

  • error
gdbusmessage.c: In function ‘g_dbus_message_to_blob’:
gdbusmessage.c:2698:30: error: ‘%s’ directive argument is null [-Werror=format-overflow=]
 2698 |       tupled_signature_str = g_strdup_printf ("(%s)", signature_str);
      |                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  • 解決
vim  output/mesonaxg_s400_32_release/build/host-libglib2-2.50.2/gio/gdbusmessage.c +2138
+ if (signature_str) 
	tupled_signature_str = g_strdup_printf ("(%s)", signature_str);
# 2699 行也一样

#error "Please port gnulib freadahead.c to your platform! Look at the definition of fflush, fread, ungetc on your system, then report this to bug-gnulib

# 解决
cd output/mesonaxg_s400_32_release/build/host-m4-1.4.18
sed -i 's/IO_ftrylockfile/IO_EOF_SEEN/' lib/*.c
echo "#define _IO_IN_BACKUP 0x100" >> lib/stdio-impl.h

lib/fseterr.c:77:3: error: #error

  • error 如下
lib/fseterr.c:77:3: error: #error "Please port gnulib fseterr.c to your platform! Look at the definitions of ferror and clearerr on your system, then report this to bug-gnulib."
   77 |  #error "Please port gnulib fseterr.c to your platform! Look at the definitions of ferror and clearerr on your system, then report this to bug-gnulib."
  • 解决
$ find . -name "fseterr.c"
./output/mesonaxg_s400_32_release/build/host-bison-3.0.4/lib/fseterr.c

cd ./output/mesonaxg_s400_32_release/build/host-bison-3.0.4
sed -i 's/IO_ftrylockfile/IO_EOF_SEEN/' lib/*.c
echo "#define _IO_IN_BACKUP 0x100" >> lib/stdio-impl.h

。。。pkgconf-0.9.12.tar.bz2 Proxy request sent, awaiting response… 404 Not Found

类似这样是相应版本无法下载问题

# 解决
去 google 搜索相应的包,下载至 buildroot/dl 目录下再重新 make 即可

【error】error: field * has incomplete type

在编译程序是出现了如题错误, 类或结构体有前向声明的用法,编译到这里时还没有发现定义,不知道该类或者结构的内部成员,没有办法具体的构造一个对象,所以会报错。

两种解决方法:
方法一:将类成员改成指针就好了;
方法二:将结构体定义放同一个地方。

类或结构体的前向声明只能用来定义指针对象或引用,因为编译到这里时还没有发现定义,不知道该类或者结构的内部成员,没有办法具体的构造一个对象,所以会报错。

将类成员改成指针就好了。 程序中使用incomplete type实现前置声明有助与实现数据的隐藏。要求调用对象的程序段只能使用声明对象的引用或者指针。

在显式声明异常规范的时候不能使用incomplete type。

digitlst.cpp:67:13: fatal error: xlocale.h: No such file or directory

cp ./output/mesonaxg_s400_32_release/host/usr/arm-linux-gnueabihf/sysroot/usr/include/xlocale.h ./output/mesonaxg_s400_32_release/host/usr/include/
vim output/mesonaxg_s400_32_release/host/usr/include/xlocale.h 

# 命名冲突
+typedef struct __locale_struct1  
+} *__locale_t1;

error: ‘min’ was not declared in this scope

  • error 如下
res_pack.cpp: In function ‘int res_img_unpack(const char*, const char*, int)’:
res_pack.cpp:403:53: error: ‘min’ was not declared in this scope
  403 |                         const unsigned thisReadSz = min(leftLen, ITEM_READ_BUF_SZ);
  • 解决
vim output/mesonaxg_s400_32_release/build/host-aml_img_packer_new-201602/res_pack.cpp

+ #include<algorithm>
+ using namespace std;

error: this ‘if’ clause does not guard…

  • error 如下
wl_iw.c:601:2: error: this ‘if’ clause does not guard... [-Werror=misleading-indentation]
  if (fwrq->m > 4000 && fwrq->m < 5000)
  • 解决

给 if 语句加上 {} 就可以解决

if (fwrq->m > 4000 && fwrq->m < 5000) {
	sf = WF_CHAN_FACTOR_4_G; /* start factor for 4 GHz */ 
}

fatal: cannot use gawk builtin `namespace’ as variable name

vim output/mesonaxg_s400_32_release/build/libgpg-error-1.26/src/mkstrtable.awk
- print "static const int " namespace "msgidx[] ="; 
+ print "static const char " pkg_namespace "msgstr[] = "
  • gwak 错误
gawk: fatal: cannot use gawk builtin `namespace' as variable name
gawk: ./mkstrtable.awk:113: warning: regexp escape sequence `\#' is not a known regexp operator
make[4]: *** [Makefile:1316: errnos-sym.h] Error 2
make[4]: *** Waiting for unfinished jobs....
./gpg-error.h.in:435: note: including './syscfg/lock-obj-pub.arm-unknown-linux-gnueabihf.h'
make[3]: *** [Makefile:474: all-recursive] Error 1
make[2]: *** [Makefile:405: all] Error 2
  • 解決
vim ./output/mesonaxg_s400_32_release/build/libgpg-error-1.26/src/mkerrcodes1.awk
vim ./output/mesonaxg_s400_32_release/build/libgpg-error-1.26/src/mkerrcodes2.awk
vim ./output/mesonaxg_s400_32_release/build/libgpg-error-1.26/src/mkerrcodes.awk
vim ./output/mesonaxg_s400_32_release/build/libgpg-error-1.26/src/mkerrnos.awk
vim ./output/mesonaxg_s400_32_release/build/libgpg-error-1.26/src/mkstrtable.awk

# 修改
!header {
-	sub (/\#.+/, "");  
+	sub (/#.+/, ""); 

No rule to make target ‘libplayer’, needed by upnp-app

make menuconfig 关掉 upnp-net-check 和 upnp-player

and then

Audio and video applications  --->
  upnp-net-check

Target packages  --->
Audio and video applications  --->
platinum applications  --->
  Target packages  --->

vim buildroot/configs/mesonaxg_s400_32_debug_defconfig 
BR2_PACKAGE_UPNP_APP is not set
BR2_PACKAGE_NETCHECK is not set

amdolby_vision.c error

make linux-menuconfig

关掉 AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION

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)
  return errnos_msgstr + errnos_msgidx[idx];
                         ^
  • 解决
- return errnos_msgstr + errnos_msgidx[idx];
+ return msgstr + msgidx[idx]; 

- idx = errnos_msgidxof (code);
+ idx = msgidxof (code); 

wifi-fw-m-amlogic/bcm_ampak/config/4356p/*.bin’: No such file or directory

vim buildroot/package/wifi-fw/wifi_fw.mk 

#注释掉 4356 相关


make make wifi-fw-rebuild

bitwise comparison always evaluates to true

uboot-next-2015-dev-axg/board/amlogic/axg_s400_v1/firmware/scp_task/pwr_ctrl.c:377:46: error: bitwise comparison always evaluates to true [-Werror=tautological-compare]
  377 |    if (((readl(AO_UART2_STATUS) & (1 << 20)) != 1)


# 找到 user_task.lds ,并拷贝到相应位置
cp [other_person_patch]/user_task.lds ./output/mesonaxg_s400_32_release/build/uboot-next-2015-dev-axg/build
  • 重新编译

make uboot-rebuild
make

ismounted.c undefined reference to `major’

vim ./output/mesonaxg_s400_32_release/build/host-e2fsprogs-1.43.3/lib/ext2fs/ismounted.c

+ #include <sys/sysmacros.h>  

error: conflicting types for ‘copy_file_range’

vim ./output/mesonaxg_s400_32_release/build/host-e2fsprogs-1.43.3/misc/create_inode.c

//#include <unistd.h> 

undefined reference to `minor’

vim ./output/mesonaxg_s400_32_release/build/host-e2fsprogs-1.43.3/misc/create_inode.c
#include <sys/sysmacros.h>  

undefined reference to `makedev’

 vim ./output/mesonaxg_s400_32_release/build/host-e2fsprogs-1.43.3/debugfs/debugfs.c
#include <sys/sysmacros.h>
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值