This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] Linux/AM5728:IPC 构建错误

Guru**** 2964200 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/673994/linux-am5728-ipc-build-error

器件型号:AM5728

工具/软件:Linux

大家好、我最近在  Linux 处理器 SDK 下构建时遇到了这个已知问题(4.1/4.2 SDK 版本软件包的 Linux-Devkit 中的 Perl 不可重定位):

在@INC 中找不到 strict.pm (您可能需要安装严格模块)(@INC 包含://usr/lib/perl/site_perl/5.22.1 //usr/lib/perl/vendor_perl/5.22.1 //usr/lib/perl/5.22.1 /tmp/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy/sysroots/x86_64-arago-linux/usr/lib/perl/site_perl/5.22.1 /tmp/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy/sysroots/x86_64-arago-linux/usr/lib/perl/5.22.1 /tmp/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy/sysroots/x86_64-arago-linux/usr/lib/perl/5.22.1 /tmp/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy/sysroots/x86_64-arago-linux/usr/lib/perl/site_perl/5.22.1 /tmp/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy/sysroots/x86_64-arago-linux/usr/lib/perl/vendor_perl/5.22.1 /tmp/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy/sysroots/x86_64-arago-linux/usr/lib/perl/vendor_perl/5.22.1 /tmp/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy/sysroots/x86_64-arago-linux/usr/lib/perl/5.22.1。) 请访问/lib/build_OID_registry 第14行。
开始失败--在./lib/build_OID_registry 行14处中止编译。
lib/Makefile:220:目标'lib/OID_registry_data.c'的配方失败
maked[2]:***[lib/OID_registry_data.c]错误2.
maked[2]:***正在等待未完成的作业...

我实现了此变通办法:

make ARCH=arm CROSS_COMPILE=./../linux-devkit/sysroot/x86_64-arago-linux/usr/bin/arm-linux-gnueabihf- zImage"(甚至是到 arm-linux-gnueabihf-的完整路径)

现在、我可以编译内核、但如果我尝试编译 ti-IPC-Linux、则会出现以下错误:

make ARCH=arm CROSS_COMPILE=~μ C/ti-processor-sdk-linux-am57xx-evm-04.01.00.06/linux-devkit/sysroots/x86_64-Arago-linux/usr/bin/arm-linux-gnueabihf- ti-IPC-linux
或  
使 arch=arm cross_compile./../linux-devkit/sysroots/x86_64-arago-linux/usr/bin/arm-linux-gnueabihf- ti-ipc.linux

libtool:编译:arm-linux-gnueabihf-gcc "-DPACKAKAKAGE_NAME="TI IPC\"-DPACKAGE_TARNAME="ti-IPC\"-DPACKAGE_VERSION="3.0.0\"-DPACKAGE_STRING\"-DPACKANE=1-DH_1 DH_SYS_DRESH=-DPAC1_DH_1 -DPACKAAVE=-ST_DH_DH_1 -ST_DH_E=TI_DH_1 -DPAC_SYS_DRESH=1 -三月=armv7-a -marm -mfpu=neon -mfloat-abi=hard --sysroot=/home/dmurphy/ti-processor-sdk-linux-am57xx-evm-04.01.00.06/linux-devkit/sysroots/armv7ahf-neon-linux-gnueabi -I./../../hlos_common/include -D_gnu_source -Wall -I./../../linux/include -I./../../packages -March =armv7-a -marm -mfpu=neon -mfloat-abi=hard -sysroot=/home/dmurphy/ti-processor-sdk-linux-am57xx-evm-04.01.00.06/linux-devkit/sysroots/armv7ahf-neon-linux-gnueabi -lad -mc=-mpu.c.lad -mp_client.c -md -mp.c.lad -mp.c.lad -mp.c.lad -mp.c -mp.c.lad -mp.c -mp.cn -mp.c.lad -mp.cn
./../../libtool:第1111行:未找到 ARM-Linux-gnueabihf-gcc 命令

为了进行确认、我还根据变通办法从$path 中删除了编译器路径。


dmurphy@tibuilder:~μ C/ti-processor-sdk-linux-am57xx-evm-04.01.00.06$ echo $path
/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

如果有任何帮助或建议、我们将不胜感激!

谢谢、

Dermot

 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Dermot、

    当您遇到"Can't locate strict.pm"模块问题时、您不需要执行任何解决方法。 您只需要安装严格模块。 然后继续使用 顶级 makefile 来构建 ti-ipo-Linux

    sudo apt-get install --reinstall --purge perl-base
    sudo apt-get install --reinstall --purge perl-module-5.22

    或导出 PERL5LIB、前提是要使用处理器 SDK 的 Linux-Devkit 中的严格模块。

    导出 PERL5LIB= /linux-devkit/sysroots/x86_64-arago-linux/usr/lib/perl

    此致、
    Kemal

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Kemal、

    此修复不适用于我的特定问题、但我找到了根本原因。 我发现使用"sudo make linux"构建 Linux 内核确实正常。

    这使我认为可能存在环境 配置问题。  在 root 用户和 build 用户下执行"which perl"显示 root 用户正在使用/usr/bin/perl、而 build 用户正在使用 sysroot 文件夹中的 perl、因为在路径中包含交叉编译器的步骤...

    dmurphy@tibuilder:~ sudo、which perl
    /usr/bin/perl
    dmurphy@tibuilder:~ perl
    /home/dmurphy/ti-processor-sdk-linux-am57xx-evm-04.01.00.06/linux-devkit/sysroots/x86_64-arago-linux/usr/bin/perl

    因此、将/usr/bin 放在$path 的开头对我来说似乎是可以的。 我想根本原因可能是 processors.wiki.ti.com/.../Processor_SDK_IPC_Quick_Start_Guide 中的"环境污染" 、这要求在构建 ti-ipc_linux 时将交叉编译器添加到$path 中?

    谢谢、
    Dermot

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的、在 TI-IPC_Linux 基础上构建时、必须添加交叉编译器$path。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢 Kemal -我想它只是强调了在干净的 bash shell 中启动新构建的重要性,以及不要将过多的 env 配置变量添加到~/.bashrc 中!