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.

[参考译文] J721EXCPXEVM:集成辅助失败。 aarch64-none-linux-GNU/bin/ld 无法找到 libassimp.so。

Guru**** 2539500 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1315715/j721excpxevm-failed-to-integrate-assimpg-aarch64-none-linux-gnu-bin-ld-cannot-find-libassimp-so

器件型号:J721EXCPXEVM

尊敬的 TI:
根据 e2e.ti.com/.../j721excpxevm-tda4vm-app_srv_camera-fails-to-replace-car-model-pod 的建议。
我正在尝试将 assimp 与 ti-processor-sdk-rtos-j721e-evm-09_00_00_02集成。

第1步:
我首先下载最新的 assimp-5.3.1.tar.gz。
在我解压缩后、我使用以下命令进行编译。 我不知道是否有任何问题。 请帮我更正它。
CD /home/georgelin/ti-processor-sdk-rtos-j721e-evm-09_00_00_02_assimp_work/assimp-5.3.1
制造
make -C /home/georgelin/ti-processor-sdk-rtos-j721e-evm-09_00_00_02_assimp_work/assimp-5.3.1 all tools_install_path=/home/georgelin/ti board=j721e_evm SOC=j721e core=mcu2_0 build_profile=release -s;

然后、我们将获得
/home/georgelin/ti-processor-sdk-rtos-j721e-evm-09_00_00_02_assimp_work/assimp-5.3.1/bin/libassimp.so
/home/georgelin/ti-processor-sdk-rtos-j721e-evm-09_00_00_02_assimp_work/assimp-5.3.1/bin/libassimp.so.5
/home/georgelin/ti-processor-sdk-rtos-j721e-evm-09_00_00_02_assimp_work/assimp-5.3.1/bin/libassimp.so.5.3.0
其中、libassimp.so 和 libassimp.so.5是指向 libassimp.so.5.3.0的符号链接。

步骤2:
为了编译通过、我将/home/georgelin/ti-processor-sdk-rtos-j721e-evm-09_00_00_02_assimp_work/assimp-5.3.1/include/assimp 的副本复制到/home/georgelin/ti-processor-sdk- rtos-j721e-evm-09_00_02_assimp_work/vision_apps/kernels/srv/GPU/3dsrv/assimp。
因为我将修改/home/georgelin/ti-processor-sdk-rtos-j721e-evm-09_00_00_02_assimp_work/vision_apps/kernels/srv/gpu/3dsrv/car.cpp 以读取 InitView()中的 glTF 文件。
但编译时仍会发生链接错误。 如下所示
make [1]:[/home/georgelin/ti-processor-sdk-rtos-j721e-evm-09_00_00_02_assimp_work/sdk_builder/concerto/finale.mak:257:/home/georgelin/ti-processor-sdk-rtos-j721e- evm-09_00_02_assimp_work/vision_apps/out/J721E/A72/Linux/release/vx_app_srv_calibration.out]错误1 (已忽略)
链接/home/georgelin/ti-processor-sdk-rtos-j721e-evm-09_00_00_02_assimp_work/vision_apps/out/J721E/A72/LINUX/release/vx_app_srv_camera.out
/home/georgelin/ti/arm-gnu-toolchain-11.3.rel1-x86_64-aarch64-none-linux-gnu/bin/../lib/gcc/aarch64-none-linux-gnu/11.3.1/.. /../../../aarch64-none-linux-gnu/bin/ld:/home/georgelin/ti-processor-sdk-rtos-j721e-evm-09_00_00_02_assimp_work/vision_apps/out/J721E/A72/LINUX /release/libtivision_apps.so:对`aiTransformVecByMatrix4"未定义引用
/home/georgelin/ti/arm-gnu-toolchain-11.3.rel1-x86_64-aarch64-none-linux-gnu/bin/../lib/gcc/aarch64-none-linux-gnu/11.3.1/.. /../../../aarch64-none-linux-gnu/bin/ld:/home/georgelin/ti-processor-sdk-rtos-j721e-evm-09_00_00_02_assimp_work/vision_apps/out/J721E/A72/LINUX /release/libtivision_apps.so:对"aiImportFile"未`引用
/home/georgelin/ti/arm-gnu-toolchain-11.3.rel1-x86_64-aarch64-none-linux-gnu/bin/../lib/gcc/aarch64-none-linux-gnu/11.3.1/.. /../../../aarch64-none-linux-gnu/bin/ld:/home/georgelin/ti-processor-sdk-rtos-j721e-evm-09_00_00_02_assimp_work/vision_apps/out/J721E/A72/LINUX /release/libtivision_apps.so:对`aiIdentityMatrix4"未定义引用
/home/georgelin/ti/arm-gnu-toolchain-11.3.rel1-x86_64-aarch64-none-linux-gnu/bin/../lib/gcc/aarch64-none-linux-gnu/11.3.1/.. /../../../aarch64-none-linux-gnu/bin/ld:/home/georgelin/ti-processor-sdk-rtos-j721e-evm-09_00_00_02_assimp_work/vision_apps/out/J721E/A72/LINUX /release/libtivision_apps.so:未`对"aiMultiplyMatrix4"的引用
collect2:错误:LD 返回1个退出状态

e2e.ti.com/.../vision_5F00_apps_5F00_log_5F00_20240122110647.zip

我尝试了两种方法来使 libassimp.所以可以由 ld 找到。
1.修改/sdk_builder/makermules/makefile_vision_apps.mak、但没有效果。
修订
    $(make)-C $(VISION_APPS_PATH)
实现
    $(make)-C $(VISION_APPS_PATH)-L $(PSDK_PATH)/assimp-5.3.1/bin

2.修改
    /vision_apps/apps/concerto _mpu_inc.mak
    /vision_apps/kernel/srv/GPU/3dsrv/concerto。mak
    /vision_apps/kernel/srv/GpU/concerto。mak
    /vision_apps/platform/j721e/rtos/concerto _a72_inc.mak
增加以下定义:
LDIRS +=$(PSDK_PATH)/assimp-5.3.1/bin
这也没有任何效果。

那么、我想问您、如何解决该问题?

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

    您好!

    本质上、app_srcv_calibration 无法找到对这些库函数的引用、因此您是否可以在本示例中的 concerto .mk 文件中添加库路径和对库的引用?

    此致、

    布里耶什

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

    尊敬的 Brijesh:


    我修改/home/georgelin/ti-processor-sdk-rtos-j721e-evm-09_00_00_02_assimp_work/vision_apps/apps/srv_demos/app_srv_calibration/concerto.mak.
    为添加库路径添加了2行新指令:
    @@-17、6 + 17、9 @@ static_libs +=$(imageing_libs)
     static_libs +=$(vision_apps_srv_libs)
     static_libs +=$(vision_apps_kernel_libs)
     
    +LDIRS +=$(PSDK_PATH)/assimp-5.3.1/bin
    +SYS_shared_libs += assimp
    +
     ifeq ($(target_os)、QNX)
     SYS_shared_libs +=屏幕
     字节序

    但我发现新的日志"make vision_apps"产生了不同的错误日志:
    /home/georgelin/ti/arm-gnu-toolchain-11.3.rel1-x86_64-aarch64-none-linux-gnu/bin/../lib/gcc/aarch64-none-linux-gnu/11.3.1/.. /../../../aarch64-none-linux-gnu/bin/ld:跳过不兼容的/home/georgelin/ti-processor-sdk-rtos-j721e-evm-09_00_00_02_assimp_work/assimp-5.3.1/bin /libassimp.so 在搜索-lassimp 时
    /home/georgelin/ti/arm-gnu-toolchain-11.3.rel1-x86_64-aarch64-none-linux-gnu/bin/../lib/gcc/aarch64-none-linux-gnu/11.3.1/.. /../../../aarch64-none-linux-gnu/bin/ld:跳过不兼容的/home/georgelin/ti-processor-sdk-rtos-j721e-evm-09_00_00_02_assimp_work/targetfs /usr/lib libassimp.so 时搜索-lassimp
    /home/georgelin/ti/arm-gnu-toolchain-11.3.rel1-x86_64-aarch64-none-linux-gnu/bin/../lib/gcc/aarch64-none-linux-gnu/11.3.1/.. /../../../aarch64-none-linux-gnu/bin/ld:在搜索-lassimp 时跳过不兼容的/home/georgelin/ti-processor-sdk-rtos-j721e-evm-09_00_00_02_assimp_work/targetfs/usr/lib/libassimp .so
    /home/georgelin/ti/arm-gnu-toolchain-11.3.rel1-x86_64-aarch64-none-linux-gnu/bin/../lib/gcc/aarch64-none-linux-gnu/11.3.1/.. /../../../aarch64-none-linux-gnu/bin/ld:在搜索-lassimp 时跳过不兼容的/home/georgelin/ti-processor-sdk-rtos-j721e-evm-09_00_00_02_assimp_work/targetfs/usr/lib/libassimp .so
    /home/georgelin/ti/arm-gnu-toolchain-11.3.rel1-x86_64-aarch64-none-linux-gnu/bin/../lib/gcc/aarch64-none-linux-gnu/11.3.1/.. /../../../aarch64-none-linux-gnu/bin/ld:找不到-lassimp:没有此类文件或目录
    /home/georgelin/ti/arm-gnu-toolchain-11.3.rel1-x86_64-aarch64-none-linux-gnu/bin/../lib/gcc/aarch64-none-linux-gnu/11.3.1/.. /../../../aarch64-none-linux-gnu/bin/ld:跳过不兼容的/home/georgelin/ti-processor-sdk-rtos-j721e-evm-09_00_00_02_assimp_work/assimp-5.3.1/bin /libassimp.so 在搜索-lassimp 时
    /home/georgelin/ti/arm-gnu-toolchain-11.3.rel1-x86_64-aarch64-none-linux-gnu/bin/../lib/gcc/aarch64-none-linux-gnu/11.3.1/.. /../../../aarch64-none-linux-gnu/bin/ld:跳过不兼容的/home/georgelin/ti-processor-sdk-rtos-j721e-evm-09_00_00_02_assimp_work/targetfs /usr/lib libassimp.so 时搜索-lassimp
    /home/georgelin/ti/arm-gnu-toolchain-11.3.rel1-x86_64-aarch64-none-linux-gnu/bin/../lib/gcc/aarch64-none-linux-gnu/11.3.1/.. /../../../aarch64-none-linux-gnu/bin/ld:在搜索-lassimp 时跳过不兼容的/home/georgelin/ti-processor-sdk-rtos-j721e-evm-09_00_00_02_assimp_work/targetfs/usr/lib/libassimp .so
    /home/georgelin/ti/arm-gnu-toolchain-11.3.rel1-x86_64-aarch64-none-linux-gnu/bin/../lib/gcc/aarch64-none-linux-gnu/11.3.1/.. /../../../aarch64-none-linux-gnu/bin/ld:在搜索-lassimp 时跳过不兼容的/home/georgelin/ti-processor-sdk-rtos-j721e-evm-09_00_00_02_assimp_work/targetfs/usr/lib/libassimp .so

    e2e.ti.com/.../vision_5F00_apps_5F00_log_5F00_20240122135340.zip

    但编译仍然失败。
    请帮我解决这个问题。
    谢谢。


    林国杰

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

    尊敬的 Brijesh:

    我的交叉编译器位置都如下:
    /home/georgelin/ti/gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf
    /home/georgelin/ti/ti-cgt-armllvm_2.1.3.LTS
    /home/georgelin/ti/gcc-arm-9.2-2019.12-x86_64-aarch64-none-elf
    /home/georgelin/ti/arm-gnu-toolchain-11.3.rel1-x86_64-aarch64-none-linux-gnu
    /home/georgelin/ti/ti-cgt-c7000_3.1.0.LTS
    /home/georgelin/ti/ti-cgt-c6000_8.3.7
    我想通过 TI 交叉编译器创建 assimp 静态函数库。

    但我的方法可能有一些问题。
    我的方法是:

    CD /home/georgelin/ti-processor-sdk-rtos-j721e-evm-09_00_00_02_assimp_work/assimp-5.3.1
    Cmake。
    make -C /home/georgelin/ti-processor-sdk-rtos-j721e-evm-09_00_00_02_assimp_work/assimp-5.3.1 all tools_install_path=/home/georgelin/ti board=j721e_evm SOC=j721e core=mcu2_0 build_profile=release -s;

    ps.:assimp 的默认 make 为 cmake。

    您能告诉我我的说明是否正确吗?
    或者、您能告诉我正确的命令是什么吗?

    此致、
    林国杰

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

    尊敬的

    您能告诉我如何使用 Aarch64交叉编译器来运行 cmake 吗?
    我找到了以下案例、它看起来像我的案例。
    e2e.ti.com/.../tda4m-building-opencv-on-a72
    但我仍然找不到 aarch64-gnu.toolchain.cmake。
    可以帮帮我吗?
    谢谢。

    最好的重建
    林国杰

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

    您好、George、

    您能否参阅文件 vision_apps\apps\concerto _a72_inc.mak? 该文件中包含 A72 Linux 或 QNX 的许多库。 所以您可以参考此文件并 在 LDIRS 变量中的 static_libs 和 Library 路径中包含您的库吗?

    此致、

    布里耶什