在 Ubuntu 20.04 上构建 Alexa Auto SDK 时将 gnulib fseeko.c 移植到您的平台
port gnulib fseeko.c to your platform while building the Alexa Auto SDK on Ubuntu 20.04
构建 Alexa Auto SDK https://github.com/alexa/alexa-auto-sdk/blob/3.2/builder/README.md
使用 Ubuntu 20.04(我没有更多的 18.04)我 运行 和
./builder/build.sh android -t androidx86-64 --android-api 28
进入
| ../../m4-1.4.18/lib/freadahead.c: In function ‘freadahead’:
| ../../m4-1.4.18/lib/freadahead.c:92:3: error: #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."
| 92 | #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."
| | ^~~~~
| make[3]: *** [Makefile:1915: freadahead.o] Error 1
| make[3]: *** Waiting for unfinished jobs....
| ../../m4-1.4.18/lib/fseeko.c: In function ‘rpl_fseeko’:
| ../../m4-1.4.18/lib/fseeko.c:110:4: error: #error "Please port gnulib fseeko.c to your platform! Look at the code in fseeko.c, then report this to bug-gnulib."
| 110 | #error "Please port gnulib fseeko.c to your platform! Look at the code in fseeko.c, then report this to bug-gnulib."
| | ^~~~~
| make[3]: *** [Makefile:1915: fseeko.o] Error 1
| make[3]: Leaving directory '/home/hannes/git/alexa-auto-sdk/builder/build/tmp-android-28/work/x86_64-linux/m4-native/1.4.18-r0/build/lib'
| make[2]: *** [Makefile:1674: all] Error 2
| make[2]: Leaving directory '/home/hannes/git/alexa-auto-sdk/builder/build/tmp-android-28/work/x86_64-linux/m4-native/1.4.18-r0/build/lib'
| make[1]: *** [Makefile:1572: all-recursive] Error 1
| make[1]: Leaving directory '/home/hannes/git/alexa-auto-sdk/builder/build/tmp-android-28/work/x86_64-linux/m4-native/1.4.18-r0/build'
| make: *** [Makefile:1528: all] Error 2
| ERROR: oe_runmake failed
| WARNING: exit code 1 from a shell command.
| ERROR: Function failed: do_compile (log file is located at /home/hannes/git/alexa-auto-sdk/builder/build/tmp-android-28/work/x86_64-linux/m4-native/1.4.18-r0/temp/log.do_compile.2647129)
ERROR: Task (/home/hannes/oe-core/meta/recipes-devtools/m4/m4-native_1.4.18.bb:do_compile) failed with exit code '1'
这是 /home/hannes/git/alexa-auto-sdk/builder/build/tmp-android-28/work/x86_64-linux/m4-native/1.4.18-r0/temp/log.do_compile.2647129
的最后重要部分
有人知道怎么解决吗?
这是 GNU m4 1.4.18 和更新的 glibc 头文件之间的互操作性问题。
它已在 GNU m4 1.4.19 中修复,可从 https://ftp.gnu.org/gnu/m4/ 和 GNU 镜像中获得。
我在 yocto 中编译时遇到了类似的问题。
请删除此行
#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
并在文件中添加这一行。
#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
还更新了 stdio-impl.h:
/* Glibc 2.28 made _IO_IN_BACKUP private. For now, work around this
problem by defining it ourselves. FIXME: Do not rely on glibc
internals. */
#if !defined _IO_IN_BACKUP && defined _IO_EOF_SEEN
# define _IO_IN_BACKUP 0x100
#endif
构建 Alexa Auto SDK https://github.com/alexa/alexa-auto-sdk/blob/3.2/builder/README.md
使用 Ubuntu 20.04(我没有更多的 18.04)我 运行 和
./builder/build.sh android -t androidx86-64 --android-api 28
进入
| ../../m4-1.4.18/lib/freadahead.c: In function ‘freadahead’:
| ../../m4-1.4.18/lib/freadahead.c:92:3: error: #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."
| 92 | #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."
| | ^~~~~
| make[3]: *** [Makefile:1915: freadahead.o] Error 1
| make[3]: *** Waiting for unfinished jobs....
| ../../m4-1.4.18/lib/fseeko.c: In function ‘rpl_fseeko’:
| ../../m4-1.4.18/lib/fseeko.c:110:4: error: #error "Please port gnulib fseeko.c to your platform! Look at the code in fseeko.c, then report this to bug-gnulib."
| 110 | #error "Please port gnulib fseeko.c to your platform! Look at the code in fseeko.c, then report this to bug-gnulib."
| | ^~~~~
| make[3]: *** [Makefile:1915: fseeko.o] Error 1
| make[3]: Leaving directory '/home/hannes/git/alexa-auto-sdk/builder/build/tmp-android-28/work/x86_64-linux/m4-native/1.4.18-r0/build/lib'
| make[2]: *** [Makefile:1674: all] Error 2
| make[2]: Leaving directory '/home/hannes/git/alexa-auto-sdk/builder/build/tmp-android-28/work/x86_64-linux/m4-native/1.4.18-r0/build/lib'
| make[1]: *** [Makefile:1572: all-recursive] Error 1
| make[1]: Leaving directory '/home/hannes/git/alexa-auto-sdk/builder/build/tmp-android-28/work/x86_64-linux/m4-native/1.4.18-r0/build'
| make: *** [Makefile:1528: all] Error 2
| ERROR: oe_runmake failed
| WARNING: exit code 1 from a shell command.
| ERROR: Function failed: do_compile (log file is located at /home/hannes/git/alexa-auto-sdk/builder/build/tmp-android-28/work/x86_64-linux/m4-native/1.4.18-r0/temp/log.do_compile.2647129)
ERROR: Task (/home/hannes/oe-core/meta/recipes-devtools/m4/m4-native_1.4.18.bb:do_compile) failed with exit code '1'
这是 /home/hannes/git/alexa-auto-sdk/builder/build/tmp-android-28/work/x86_64-linux/m4-native/1.4.18-r0/temp/log.do_compile.2647129
的最后重要部分有人知道怎么解决吗?
这是 GNU m4 1.4.18 和更新的 glibc 头文件之间的互操作性问题。
它已在 GNU m4 1.4.19 中修复,可从 https://ftp.gnu.org/gnu/m4/ 和 GNU 镜像中获得。
我在 yocto 中编译时遇到了类似的问题。
请删除此行
#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
并在文件中添加这一行。
#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
还更新了 stdio-impl.h:
/* Glibc 2.28 made _IO_IN_BACKUP private. For now, work around this
problem by defining it ourselves. FIXME: Do not rely on glibc
internals. */
#if !defined _IO_IN_BACKUP && defined _IO_EOF_SEEN
# define _IO_IN_BACKUP 0x100
#endif