嵌入式爱好者

查看: 82995|回复: 14

[Linux] 全源码编译失败

[复制链接]

7

主题

19

帖子

75

积分

A40i/T3/T507/T527通行证i.MX6UL通行证

扫一扫,手机访问本帖
发表于 2021-3-23 11:03:50 | 显示全部楼层 |阅读模式
根据用户手册的附录四全源码编译: clipboard.png
报错:

configure: error: Package requirements (libffi >= 3.0.0) were not met:

Package libffi was not found in the pkg-config search path.
Perhaps you should add the directory containing `libffi.pc'
to the PKG_CONFIG_PATH environment variable
Package 'libffi', required by 'world', not found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively, you may set the environment variables LIBFFI_CFLAGS
and LIBFFI_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
package/pkg-generic.mk:206: recipe for target '/home/merak/build/OKA40i/linux/bsp/lichee/out/sun8iw11p1/linux/common/buildroot/build/libglib2-2.50.1/.stamp_configured' failed
make[1]: *** [/home/merak/build/OKA40i/linux/bsp/lichee/out/sun8iw11p1/linux/common/buildroot/build/libglib2-2.50.1/.stamp_configured] Error 1
Makefile:76: recipe for target '_all' failed
make: *** [_all] Error 2
make: Leaving directory '/home/merak/build/OKA40i/linux/bsp/lichee/buildroot-201611'
ERROR: build buildroot Failed




请问如何解决?
回复

使用道具 举报

4

主题

9

帖子

36

积分

A40i/T3/T507/T527通行证RK3568通行证FCU2401通行证

发表于 2021-3-23 11:12:49 | 显示全部楼层
你先查看一下libffi-dev的版本,输入

#sudo apt-cache show libffi-dev

如果显示的version低于编译的版本要求,那就重新安装一下libffi-dev

#sudo apt-get --reinstall install libffi-dev

试一试

点评

看这个版本,是满足条件的 Package: libffi-dev Priority: extra Section: libdevel Installed-Size: 356 Maintainer: Ubuntu Developers Original-Maintainer: Debian GCC Maintainers Architecture: amd6  详情 回复 发表于 2021-3-23 13:13
点评回复 支持 反对

使用道具 举报

7

主题

19

帖子

75

积分

A40i/T3/T507/T527通行证i.MX6UL通行证

 楼主| 发表于 2021-3-23 13:13:39 | 显示全部楼层
Jafy_Chan 发表于 2021-3-23 11:12
你先查看一下libffi-dev的版本,输入

#sudo apt-cache show libffi-dev

看这个版本,是满足条件的
Package: libffi-dev
Priority: extra
Section: libdevel
Installed-Size: 356
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Original-Maintainer: Debian GCC Maintainers <debian-gcc@lists.debian.org>
Architecture: amd64
Source: libffi
Version: 3.2.1-4
Depends: libffi6 (= 3.2.1-4), dpkg (>= 1.15.4) | install-info
Conflicts: libffi4-dev
Filename: pool/main/libf/libffi/libffi-dev_3.2.1-4_amd64.deb
Size: 161292
MD5sum: 91b6348af83ddaf01ca719302b93c75a
SHA1: 799a373e16da7a911c8e86d8f553ac1ad361df75
SHA256: 6cd62ec1a361bb6a6cb01e9a7fca343b9cb0934e1aedb7d6557606d7e32b020c
Description-en: Foreign Function Inte**ce library (development files)
This package contains the headers and static library files necessary for
building programs which use libffi.
.
A foreign function inte**ce is the popular name for the inte**ce that
allows code written in one language to call code written in another
language.
Description-md5: cb5b8c2fd242772cae1be91db134642c
Multi-Arch: same
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Origin: Ubuntu
Supported: 9m
点评回复 支持 反对

使用道具 举报

1

主题

7

帖子

45

积分

A40i/T3/T507/T527通行证

发表于 2021-5-29 23:02:55 | 显示全部楼层
请问这个问题解决了么?我在编译rootfs的时候也遇到了相同的问题,unbuntu下安装了最新的libffi-dev照样提示说“configure: error: Package requirements (libffi >= 3.0.0) were not met:”

点评

我后来从头开始重新试了一遍,放置的目录和文档里说的一致就正常了,和5楼所说一致  详情 回复 发表于 2021-5-31 09:01
点评回复 支持 反对

使用道具 举报

0

主题

158

帖子

385

积分

LS1012A通行证LS1043A\46A通行证A40i/T3/T507/T527通行证i.MX8MM通行证RK3399通行证LS1028A通行证AM5718通行证Hi3519A通信证AM335x通行证i.MX6UL通行证i.MX RT通行证i.MX6Q通行证XX18通行证TCU通行证FDU产品通行证FCU1401通行证FCU1301通行证FCU11xx通行证FCU1201通行证FCU2301/FCU2302通行证FCU2401通行证5G转接卡通行证

发表于 2021-5-31 08:47:02 | 显示全部楼层
您看一下您文件放置的路径是否和软件用户手册上的路径一致?因为全志平台环境变量设置的都是绝对路径,文件放置位置和软件用户手册不一致会出现这种问题。
点评回复 支持 反对

使用道具 举报

7

主题

19

帖子

75

积分

A40i/T3/T507/T527通行证i.MX6UL通行证

 楼主| 发表于 2021-5-31 09:01:26 | 显示全部楼层
tweet 发表于 2021-5-29 23:02
请问这个问题解决了么?我在编译rootfs的时候也遇到了相同的问题,unbuntu下安装了最新的libffi-dev照样提 ...

我后来从头开始重新试了一遍,放置的目录和文档里说的一致就正常了,和5楼所说一致

点评

我的想法是,如何创建一个buildroot环境,让里面的执行程序依赖的动态库为自定义本地目录。 例如,官方提供的rootfs中,host上的执行程序bison依赖的动态库为绝对路径:/root/workspace/allwinner/A40i/bsp/lichee/  详情 回复 发表于 2021-5-31 23:42
点评回复 支持 反对

使用道具 举报

1

主题

7

帖子

45

积分

A40i/T3/T507/T527通行证

发表于 2021-5-31 23:42:00 | 显示全部楼层
本帖最后由 tweet 于 2021-5-31 23:47 编辑
merak 发表于 2021-5-31 09:01
我后来从头开始重新试了一遍,放置的目录和文档里说的一致就正常了,和5楼所说一致

我的想法是,如何创建一个buildroot环境,让里面的执行程序依赖的动态库为自定义本地目录。
例如,官方提供的rootfs中,host上的执行程序bison依赖的动态库为绝对路径:/root/workspace/allwinner/A40i/bsp/lichee/out/sun8iw11p1/linux/common/buildroot/host/usr/lib 2021-5-31 23-29-02.jpg
如果不符合/root/workspace/.....这样的目录结构,就会导致编译失败。该方法的问题是:总是需要使用root权限来编译,很不方便。

能不能生成自定义的rootfs,其中的执行程序依赖类似/home/tweet/out/.....呢?这样就可以使用其它用户来编译。而就是因为我没有按照用户手册提供的目录结构来编译生成新的buildroot,导致了libffi这个问题。@tanglu


点评回复 支持 反对

使用道具 举报

0

主题

158

帖子

385

积分

LS1012A通行证LS1043A\46A通行证A40i/T3/T507/T527通行证i.MX8MM通行证RK3399通行证LS1028A通行证AM5718通行证Hi3519A通信证AM335x通行证i.MX6UL通行证i.MX RT通行证i.MX6Q通行证XX18通行证TCU通行证FDU产品通行证FCU1401通行证FCU1301通行证FCU11xx通行证FCU1201通行证FCU2301/FCU2302通行证FCU2401通行证5G转接卡通行证

发表于 2021-6-3 08:40:30 | 显示全部楼层
现在论坛中最新的那版开发环境就可以使用普通用户进行编译,不过您编译时可能会报错,您将lichee这个路径下的out目录删掉再重新编译就可以了。
点评回复 支持 反对

使用道具 举报

1

主题

7

帖子

45

积分

A40i/T3/T507/T527通行证

发表于 2021-7-2 17:49:34 来自手机 | 显示全部楼层
你好,我按照你说的,把out目录删除了重新使用./build.sh编译,还是没有成功,后来总是在编译default/librpc/gen_ndr目录下停止,还导致主机会死机,请问怎么才能继续编译?
点评回复 支持 反对

使用道具 举报

0

主题

1173

帖子

2203

积分

发表于 2021-7-3 10:11:17 | 显示全部楼层
您用的是我们提供的18.04的开发环境吗,您按照开发环境的readme文档里的方法操作一下,里边有全编译需要修改的内容
点评回复 支持 反对

使用道具 举报

1

主题

7

帖子

45

积分

A40i/T3/T507/T527通行证

发表于 2021-7-3 19:18:14 | 显示全部楼层
本帖最后由 tweet 于 2021-7-3 21:04 编辑

用的还是之前的版本,虚拟机用的是12.5版本的,刚看到有新的虚拟机版本和patch.zip发布,后面再尝试一下。建议还是将全源码编译的开发环境、版本、步骤还是详细说明。目的是,在非/root/workspace/allwinner的目录来全源码编译。
点评回复 支持 反对

使用道具 举报

0

主题

1173

帖子

2203

积分

发表于 2021-7-5 08:29:28 | 显示全部楼层
那您需要修改所有指定这个路径的文件,比较麻烦
点评回复 支持 反对

使用道具 举报

1

主题

7

帖子

45

积分

A40i/T3/T507/T527通行证

发表于 2021-7-5 09:58:29 来自手机 | 显示全部楼层
使用论坛上最新的vm15.1虚拟机开发环境,和之前的lichee.tar.gz,然后打上最新发布的patch.zip,全源码编译成功!现在已经可以在forlinx用户下开发,谢谢

点评

您好 请问您是下载了最新版本的编译环境 然后直接将源码放在forlinx用户下,patch之后就可以在forlinx下编译了吗?望指教 多谢了  详情 回复 发表于 2021-7-8 15:10
点评回复 支持 反对

使用道具 举报

3

主题

7

帖子

28

积分

A40i/T3/T507/T527通行证

发表于 2021-7-8 15:10:14 | 显示全部楼层
tweet 发表于 2021-7-5 09:58
使用论坛上最新的vm15.1虚拟机开发环境,和之前的lichee.tar.gz,然后打上最新发布的patch.zip,全源码编译 ...

您好 请问您是下载了最新版本的编译环境 然后直接将源码放在forlinx用户下,patch之后就可以在forlinx下编译了吗?望指教 多谢了

点评

是的,我是在提供的ubuntu 18的虚拟机中,在/home/forlinx目录下编译的。在其他的用户环境下应该也可以编译。目前我在自己之前安装的另外一台ubuntu16.04虚拟机下也成功源码编译。  详情 回复 发表于 2021-7-9 22:58
点评回复 支持 反对

使用道具 举报

1

主题

7

帖子

45

积分

A40i/T3/T507/T527通行证

发表于 2021-7-9 22:58:20 | 显示全部楼层
海东 发表于 2021-7-8 15:10
您好 请问您是下载了最新版本的编译环境 然后直接将源码放在forlinx用户下,patch之后就可以在forlinx下 ...

是的,我是在提供的ubuntu 18的虚拟机中,在/home/forlinx目录下编译的。在其他的用户环境下应该也可以编译。目前我在自己之前安装的另外一台ubuntu16.04虚拟机下也成功源码编译。
点评回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|小黑屋| 飞凌嵌入式 ( 冀ICP备12004394号-1 )

GMT+8, 2025-1-9 06:00

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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