高通8155平台YOCTO CMAKE 编译问题解决方法

作者分享了在使用高通8155平台和Yocto Linux环境下,遇到CMake编译cmCTestResourceGroupsLexer时的zstd库链接错误。通过分析源码和配置,发现CMAKE_USE_SYSTEM_ZSTD默认为OFF,导致编译失败。通过修改CMakeCache.txt设置--no-system-zstd,成功解决了编译问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

硬件平台:高通8155

软件平台:yocoto linux + ubuntu16.04

最近开始接触8155平台,发现编译阶段出现cmake编译失败,网上搜了一下没有相关的解决方案,因此自己研究了下并记录一下,方便有需要的同行快速解决。

问题描述:

| [ 93%] Building CXX object Source/CMakeFiles/CTestLib.dir/LexerParser/cmCTestResourceGroupsLexer.cxx.o
| cd /home/CN/yongfeng.liu/SA8155_LV_1_0_v2/apps/apps_proc/poky/build/tmp-glibc/work/x86_64-linux/cmake-native/3.19.5-r0/build/Source && /home/CN/yongfeng.liu/SA8155_LV_1_0_v2/apps/apps_proc/poky/build/tmp-glibc/hosttools/g++ -DLIBARCHIVE_STATIC -I/home/CN/yongfeng.liu/SA8155_LV_1_0_v2/apps/apps_proc/poky/build/tmp-glibc/work/x86_64-linux/cmake-native/3.19.5-r0/build/Utilities -I/home/CN/yongfeng.liu/SA8155_LV_1_0_v2/apps/apps_proc/poky/build/tmp-glibc/work/x86_64-linux/cmake-native/3.19.5-r0/build/Source -I/home/CN/yongfeng.liu/SA8155_LV_1_0_v2/apps/apps_proc/poky/build/tmp-glibc/work/x86_64-linux/cmake-native/3.19.5-r0/cmake-3.19.5/Source -I/home/CN/yongfeng.liu/SA8155_LV_1_0_v2/apps/apps_proc/poky/build/tmp-glibc/work/x86_64-linux/cmake-native/3.19.5-r0/cmake-3.19.5/Source/LexerParser -I/home/CN/yongfeng.liu/SA8155_LV_1_0_v2/apps/apps_proc/poky/build/tmp-glibc/work/x86_64-linux/cmake-native/3.19.5-r0/cmake-3.19.5/Source/CTest -I/home/CN/yongfeng.liu/SA8155_LV_1_0_v2/apps/apps_proc/poky/build/tmp-glibc/work/x86_64-linux/cmake-native/3.19.5-r0/cmake-3.19.5/Source/CPack -isystem /home/CN/yongfeng.liu/SA8155_LV_1_0_v2/apps/apps_proc/poky/build/tmp-glibc/work/x86_64-linux/cmake-native/3.19.5-r0/cmake-3.19.5/Utilities/std -isystem /home/CN/yongfeng.liu/SA8155_LV_1_0_v2/apps/apps_proc/poky/build/tmp-glibc/work/x86_64-linux/cmake-native/3.19.5-r0/cmake-3.19.5/Utilities -isystem/home/CN/yongfeng.liu/SA8155_LV_1_0_v2/apps/apps_proc/poky/build/tmp-glibc/work/x86_64-linux/cmake-native/3.19.5-r0/recipe-sysroot-native/usr/include -O2 -pipe -O3 -DNDEBUG -std=c++14 -o CMakeFiles/CTestLib.dir/LexerParser/cmCTestResourceGroupsLexer.cxx.o -c /home/CN/yongfeng.liu/SA8155_LV_1_0_v2/apps/apps_proc/poky/build/tmp-glibc/work/x86_64-linux/cmake-native/3.19.5-r0/cmake-3.19.5/Source/LexerParser/cmCTestResourceGroupsLexer.cxx
| [ 93%] Linking CXX static library libCPackLib.a
| cd /home/CN/yongfeng.liu/SA8155_LV_1_0_v2/apps/apps_proc/poky/build/tmp-glibc/work/x86_64-linux/cmake-native/3.19.5-r0/build/Source && /home/CN/yongfeng.liu/SA8155_LV_1_0_v2/apps/apps_proc/poky/build/tmp-glibc/work/x86_64-linux/cmake-native/3.19.5-r0/build/Bootstrap.cmk/cmake -P CMakeFiles/CPackLib.dir/cmake_clean_target.cmake
| cd /home/CN/yongfeng.liu/SA8155_LV_1_0_v2/apps/apps_proc/poky/build/tmp-glibc/work/x86_64-linux/cmake-native/3.19.5-r0/build/Source && /home/CN/yongfeng.liu/SA8155_LV_1_0_v2/apps/apps_proc/poky/build/tmp-glibc/work/x86_64-linux/cmake-native/3.19.5-r0/build/Bootstrap.cmk/cmake -E cmake_link_script CMakeFiles/CPackLib.dir/link.txt --verbose=1
| /home/CN/yongfeng.liu/SA8155_LV_1_0_v2/apps/apps_proc/poky/build/tmp-glibc/hosttools/ar qc libCPackLib.a CMakeFiles/CPackLib.dir/CPack/cmCPackArchiveGenerator.cxx.o CMakeFiles/CPackLib.dir/CPack/cmCPackComponentGroup.cxx.o CMakeFiles/CPackLib.dir/CPack/cmCPackDebGenerator.cxx.o CMakeFiles/CPackLib.dir/CPack/cmCPackExternalGenerator.cxx.o CMakeFiles/CPackLib.dir/CPack/cmCPackGeneratorFactory.cxx.o CMakeFiles/CPackLib.dir/CPack/cmCPackGenerator.cxx.o CMakeFiles/CPackLib.dir/CPack/cmCPackLog.cxx.o CMakeFiles/CPackLib.dir/CPack/cmCPackNSISGenerator.cxx.o CMakeFiles/CPackLib.dir/CPack/cmCPackNuGetGenerator.cxx.o CMakeFiles/CPackLib.dir/CPack/cmCPackSTGZGenerator.cxx.o CMakeFiles/CPackLib.dir/CPack/IFW/cmCPackIFWCommon.cxx.o CMakeFiles/CPackLib.dir/CPack/IFW/cmCPackIFWGenerator.cxx.o CMakeFiles/CPackLib.dir/CPack/IFW/cmCPackIFWInstaller.cxx.o CMakeFiles/CPackLib.dir/CPack/IFW/cmCPackIFWPackage.cxx.o CMakeFiles/CPackLib.dir/CPack/IFW/cmCPackIFWRepository.cxx.o CMakeFiles/CPackLib.dir/CPack/cmCPackRPMGenerator.cxx.o
| /home/CN/yongfeng.liu/SA8155_LV_1_0_v2/apps/apps_proc/poky/build/tmp-glibc/hosttools/ranlib libCPackLib.a
| ../../Utilities/cmlibarchive/libarchive/libcmlibarchive.a(archive_read_support_filter_zstd.c.o): In function `zstd_filter_close':
| archive_read_support_filter_zstd.c:(.text+0x9): undefined reference to `ZSTD_freeDStream'
| ../../Utilities/cmlibarchive/libarchive/libcmlibarchive.a(archive_read_support_filter_zstd.c.o): In function `zstd_bidder_init':
| archive_read_support_filter_zstd.c:(.text+0x3e): undefined reference to `ZSTD_DStreamOutSize'
| archive_read_support_filter_zstd.c:(.text+0x72): undefined reference to `ZSTD_createDStream'
| archive_read_support_filter_zstd.c:(.text+0xe5): undefined reference to `ZSTD_freeDStream'
| ../../Utilities/cmlibarchive/libarchive/libcmlibarchive.a(archive_read_support_filter_zstd.c.o): In function `zstd_filter_read':
| archive_read_support_filter_zstd.c:(.text+0x207): undefined reference to `ZSTD_decompressStream'
| archive_read_support_filter_zstd.c:(.text+0x253): undefined reference to `ZSTD_initDStream'
| ../../Utilities/cmlibarchive/libarchive/libcmlibarchive.a(archive_write_add_filter_zstd.c.o): In function `archive_compressor_zstd_free':
| archive_write_add_filter_zstd.c:(.text+0x12): undefined reference to `ZSTD_freeCStream'
| ../../Utilities/cmlibarchive/libarchive/libcmlibarchive.a(archive_write_add_filter_zstd.c.o): In function `archive_compressor_zstd_open':
| archive_write_add_filter_zstd.c:(.text+0xc1): undefined reference to `ZSTD_initCStream'
| archive_write_add_filter_zstd.c:(.text+0xe1): undefined reference to `ZSTD_CStreamOutSize'
| ../../Utilities/cmlibarchive/libarchive/libcmlibarchive.a(archive_write_add_filter_zstd.c.o): In function `archive_compressor_zstd_write':
| archive_write_add_filter_zstd.c:(.text+0x1d7): undefined reference to `ZSTD_compressStream'
| ../../Utilities/cmlibarchive/libarchive/libcmlibarchive.a(archive_write_add_filter_zstd.c.o): In function `archive_compressor_zstd_close':
| archive_write_add_filter_zstd.c:(.text+0x298): undefined reference to `ZSTD_endStream'
| ../../Utilities/cmlibarchive/libarchive/libcmlibarchive.a(archive_write_add_filter_zstd.c.o): In function `archive_write_add_filter_zstd':
| archive_write_add_filter_zstd.c:(.text+0x3ac): undefined reference to `ZSTD_createCStream'
| collect2: error: ld returned 1 exit status
| Source/CursesDialog/CMakeFiles/ccmake.dir/build.make:315: recipe for target 'bin/ccmake' failed
| make[2]: *** [bin/ccmake] Error 1
| make[2]: Leaving directory '/home/CN/yongfeng.liu/SA8155_LV_1_0_v2/apps/apps_proc/poky/build/tmp-glibc/work/x86_64-linux/cmake-native/3.19.5-r0/build'
| CMakeFiles/Makefile2:2176: recipe for target 'Source/CursesDialog/CMakeFiles/ccmake.dir/all' failed
| make[1]: *** [Source/CursesDialog/CMakeFiles/ccmake.dir/all] Error 2
| make[2]: Leaving directory '/home/CN/yongfeng.liu/SA8155_LV_1_0_v2/apps/apps_proc/poky/build/tmp-glibc/work/x86_64-linux/cmake-native/3.19.5-r0/build'
| [ 93%] Built target CPackLib
| [ 93%] Linking CXX static library libCMakeServerLib.a
| cd /home/CN/yongfeng.liu/SA8155_LV_1_0_v2/apps/apps_proc/poky/build/tmp-glibc/work/x86_64-linux/cmake-native/3.19.5-r0/build/Source && /home/CN/yongfeng.liu/SA8155_LV_1_0_v2/apps/apps_proc/poky/build/tmp-glibc/work/x86_64-linux/cmake-native/3.19.5-r0/build/Bootstrap.cmk/cmake -P CMakeFiles/CMakeServerLib.dir/cmake_clean_target.cmake
| cd /home/CN/yongfeng.liu/SA8155_LV_1_0_v2/apps/apps_proc/poky/build/tmp-glibc/work/x86_64-linux/cmake-native/3.19.5-r0/build/Source && /home/CN/yongfeng.liu/SA8155_LV_1_0_v2/apps/apps_proc/poky/build/tmp-glibc/work/x86_64-linux/cmake-native/3.19.5-r0/build/Bootstrap.cmk/cmake -E cmake_link_script CMakeFiles/CMakeServerLib.dir/link.txt --verbose=1
| /home/CN/yongfeng.liu/SA8155_LV_1_0_v2/apps/apps_proc/poky/build/tmp-glibc/hosttools/ar qc libCMakeServerLib.a CMakeFiles/CMakeServerLib.dir/cmConnection.cxx.o CMakeFiles/CMakeServerLib.dir/cmFileMonitor.cxx.o CMakeFiles/CMakeServerLib.dir/cmJsonObjects.cxx.o CMakeFiles/CMakeServerLib.dir/cmPipeConnection.cxx.o CMakeFiles/CMakeServerLib.dir/cmServer.cxx.o CMakeFiles/CMakeServerLib.dir/cmServerConnection.cxx.o CMakeFiles/CMakeServerLib.dir/cmServerProtocol.cxx.o
| /home/CN/yongfeng.liu/SA8155_LV_1_0_v2/apps/apps_proc/poky/build/tmp-glibc/hosttools/ranlib libCMakeServerLib.a
| make[2]: Leaving directory '/home/CN/yongfeng.liu/SA8155_LV_1_0_v2/apps/apps_proc/poky/build/tmp-glibc/work/x86_64-linux/cmake-native/3.19.5-r0/build'
| [ 93%] Built target CMakeServerLib
| [ 93%] Linking CXX static library libCTestLib.a
| cd /home/CN/yongfeng.liu/SA8155_LV_1_0_v2/apps/apps_proc/poky/build/tmp-glibc/work/x86_64-linux/cmake-native/3.19.5-r0/build/Source && /home/CN/yongfeng.liu/SA8155_LV_1_0_v2/apps/apps_proc/poky/build/tmp-glibc/work/x86_64-linux/cmake-native/3.19.5-r0/build/Bootstrap.cmk/cmake -P CMakeFiles/CTestLib.dir/cmake_clean_target.cmake
| cd /home/CN/yongfeng.liu/SA8155_LV_1_0_v2/apps/apps_proc/poky/build/tmp-glibc/work/x86_64-linux/cmake-native/3.19.5-r0/build/Source && /home/CN/yongfeng.liu/SA8155_LV_1_0_v2/apps/apps_proc/poky/build/tmp-glibc/work/x86_64-linux/cmake-native/3.19.5-r0/build/Bootstrap.cmk/cmake -E cmake_link_script CMakeFiles/CTestLib.dir/link.txt --verbose=1
| /home/CN/yongfeng.liu/SA8155_LV_1_0_v2/apps/apps_proc/poky/build/tmp-glibc/hosttools/ar qc libCTestLib.a CMakeFiles/CTestLib.dir/cmCTest.cxx.o CMakeFiles/CTestLib.dir/CTest/cmProcess.cxx.o CMakeFiles/CTestLib.dir/CTest/cmCTestBinPacker.cxx.o CMakeFiles/CTestLib.dir/CTest/cmCTestBuildAndTestHandler.cxx.o CMakeFiles/CTestLib.dir/CTest/cmCTestBuildCommand.cxx.o CMakeFiles/CTestLib.dir/CTest/cmCTestBuildHandler.cxx.o CMakeFiles/CTestLib.dir/CTest/cmCTestConfigureCommand.cxx.o CMakeFiles/CTestLib.dir/CTest/cmCTestConfigureHandler.cxx.o CMakeFiles/CTestLib.dir/CTest/cmCTestCoverageCommand.cxx.o CMakeFiles/CTestLib.dir/CTest/cmCTestCoverageHandler.cxx.o CMakeFiles/CTestLib.dir/CTest/cmCTestCurl.cxx.o CMakeFiles/CTestLib.dir/CTest/cmParseMumpsCoverage.cxx.o CMakeFiles/CTestLib.dir/CTest/cmParseCacheCoverage.cxx.o CMakeFiles/CTestLib.dir/CTest/cmParseGTMCoverage.cxx.o CMakeFiles/CTestLib.dir/CTest/cmParseJacocoCoverage.cxx.o CMakeFiles/CTestLib.dir/CTest/cmParseBlanketJSCoverage.cxx.o CMakeFiles/CTestLib.dir/CTest/cmParsePHPCoverage.cxx.o CMakeFiles/CTestLib.dir/CTest/cmParseCoberturaCoverage.cxx.o CMakeFiles/CTestLib.dir/CTest/cmParseDelphiCoverage.cxx.o CMakeFiles/CTestLib.dir/CTest/cmCTestEmptyBinaryDirectoryCommand.cxx.o CMakeFiles/CTestLib.dir/CTest/cmCTestGenericHandler.cxx.o CMakeFiles/CTestLib.dir/CTest/cmCTestHandlerCommand.cxx.o CMakeFiles/CTestLib.dir/CTest/cmCTestResourceAllocator.cxx.o CMakeFiles/CTestLib.dir/CTest/cmCTestResourceSpec.cxx.o CMakeFiles/CTestLib.dir/CTest/cmCTestLaunch.cxx.o CMakeFiles/CTestLib.dir/CTest/cmCTestLaunchReporter.cxx.o CMakeFiles/CTestLib.dir/CTest/cmCTestMemCheckCommand.cxx.o CMakeFiles/CTestLib.dir/CTest/cmCTestMemCheckHandler.cxx.o CMakeFiles/CTestLib.dir/CTest/cmCTestMultiProcessHandler.cxx.o CMakeFiles/CTestLib.dir/CTest/cmCTestReadCustomFilesCommand.cxx.o CMakeFiles/CTestLib.dir/CTest/cmCTestResourceGroupsLexerHelper.cxx.o CMakeFiles/CTestLib.dir/CTest/cmCTestRunScriptCommand.cxx.o CMakeFiles/CTestLib.dir/CTest/cmCTestRunTest.cxx.o CMakeFiles/CTestLib.dir/CTest/cmCTestScriptHandler.cxx.o CMakeFiles/CTestLib.dir/CTest/cmCTestSleepCommand.cxx.o CMakeFiles/CTestLib.dir/CTest/cmCTestStartCommand.cxx.o CMakeFiles/CTestLib.dir/CTest/cmCTestSubmitCommand.cxx.o CMakeFiles/CTestLib.dir/CTest/cmCTestSubmitHandler.cxx.o CMakeFiles/CTestLib.dir/CTest/cmCTestTestCommand.cxx.o CMakeFiles/CTestLib.dir/CTest/cmCTestTestHandler.cxx.o CMakeFiles/CTestLib.dir/CTest/cmCTestUpdateCommand.cxx.o CMakeFiles/CTestLib.dir/CTest/cmCTestUpdateHandler.cxx.o CMakeFiles/CTestLib.dir/CTest/cmCTestUploadCommand.cxx.o CMakeFiles/CTestLib.dir/CTest/cmCTestUploadHandler.cxx.o CMakeFiles/CTestLib.dir/CTest/cmCTestVC.cxx.o CMakeFiles/CTestLib.dir/CTest/cmCTestGlobalVC.cxx.o CMakeFiles/CTestLib.dir/CTest/cmCTestCVS.cxx.o CMakeFiles/CTestLib.dir/CTest/cmCTestSVN.cxx.o CMakeFiles/CTestLib.dir/CTest/cmCTestBZR.cxx.o CMakeFiles/CTestLib.dir/CTest/cmCTestGIT.cxx.o CMakeFiles/CTestLib.dir/CTest/cmCTestHG.cxx.o CMakeFiles/CTestLib.dir/CTest/cmCTestP4.cxx.o CMakeFiles/CTestLib.dir/LexerParser/cmCTestResourceGroupsLexer.cxx.o
| /home/CN/yongfeng.liu/SA8155_LV_1_0_v2/apps/apps_proc/poky/build/tmp-glibc/hosttools/ranlib libCTestLib.a
| make[2]: Leaving directory '/home/CN/yongfeng.liu/SA8155_LV_1_0_v2/apps/apps_proc/poky/build/tmp-glibc/work/x86_64-linux/cmake-native/3.19.5-r0/build'
| [ 93%] Built target CTestLib
| make[1]: Leaving directory '/home/CN/yongfeng.liu/SA8155_LV_1_0_v2/apps/apps_proc/poky/build/tmp-glibc/work/x86_64-linux/cmake-native/3.19.5-r0/build'
| Makefile:184: recipe for target 'all' failed
| make: *** [all] Error 2
| WARNING: /home/CN/yongfeng.liu/SA8155_LV_1_0_v2/apps/apps_proc/poky/build/tmp-glibc/work/x86_64-linux/cmake-native/3.19.5-r0/temp/run.do_compile.3918:1 exit 1 from 'exit 1'
| 
ERROR: Task (/home/CN/yongfeng.liu/SA8155_LV_1_0_v2/apps/apps_proc/poky/meta/recipes-devtools/cmake/cmake-native_3.19.5.bb:do_compile) failed with exit code '1'
NOTE: Tasks Summary: Attempted 5070 tasks of which 4104 didn't need to be rerun and 1 failed.
NOTE: Writing buildhistory
NOTE: Writing buildhistory took: 4 seconds

Summary: 1 task failed:
  /home/CN/yongfeng.liu/SA8155_LV_1_0_v2/apps/apps_proc/poky/meta/recipes-devtools/cmake/cmake-native_3.19.5.bb:do_compile
Summary: There were 116 WARNING messages shown.
Summary: There were 2 ERROR messages shown, returning a non-zero exit code.
/home/CN/yongfeng.liu/SA8155_LV_1_0_v2/apps/apps_proc/poky/build
==== Error run 'cdbitbake machine-image'. (build-sa8155agl-perf-image)

查看以上log信息,发现是因为zstd头文件出行未定义错误:

| archive_read_support_filter_zstd.c:(.text+0x9): undefined reference to `ZSTD_freeDStream'
| ../../Utilities/cmlibarchive/libarchive/libcmlibarchive.a(archive_read_support_filter_zstd.c.o): In function `zstd_bidder_init':
| archive_read_support_filter_zstd.c:(.text+0x3e): undefined reference to `ZSTD_DStreamOutSize'
| archive_read_support_filter_zstd.c:(.text+0x72): undefined reference to `ZSTD_createDStream'
| archive_read_support_filter_zstd.c:(.text+0xe5): undefined reference to `ZSTD_freeDStream'
| ../../Utilities/cmlibarchive/libarchive/libcmlibarchive.a(archive_read_support_filter_zstd.c.o): In function `zstd_filter_read':
| archive_read_support_filter_zstd.c:(.text+0x207): undefined reference to `ZSTD_decompressStream'
| archive_read_support_filter_zstd.c:(.text+0x253): undefined reference to `ZSTD_initDStream'
| ../../Utilities/cmlibarchive/libarchive/libcmlibarchive.a(archive_write_add_filter_zstd.c.o): In function `archive_compressor_zstd_free':
| archive_write_add_filter_zstd.c:(.text+0x12): undefined reference to `ZSTD_freeCStream'
| ../../Utilities/cmlibarchive/libarchive/libcmlibarchive.a(archive_write_add_filter_zstd.c.o): In function `archive_compressor_zstd_open':
| archive_write_add_filter_zstd.c:(.text+0xc1): undefined reference to `ZSTD_initCStream'
| archive_write_add_filter_zstd.c:(.text+0xe1): undefined reference to `ZSTD_CStreamOutSize'
| ../../Utilities/cmlibarchive/libarchive/libcmlibarchive.a(archive_write_add_filter_zstd.c.o): In function `archive_compressor_zstd_write':
| archive_write_add_filter_zstd.c:(.text+0x1d7): undefined reference to `ZSTD_compressStream'
| ../../Utilities/cmlibarchive/libarchive/libcmlibarchive.a(archive_write_add_filter_zstd.c.o): In function `archive_compressor_zstd_close':
| archive_write_add_filter_zstd.c:(.text+0x298): undefined reference to `ZSTD_endStream'
| ../../Utilities/cmlibarchive/libarchive/libcmlibarchive.a(archive_write_add_filter_zstd.c.o): In function `archive_write_add_filter_zstd':
| archive_write_add_filter_zstd.c:(.text+0x3ac): undefined reference to `ZSTD_createCStream'

在yocto系统中,编译时会先下载cmake源码,然后配置,最后编译。

查看cmake的源码和配置方法,发现CMAKE_USE_SYSTEM_ZSTD:BOOL=NO,表示cmake编译会采用系统的zstd,改为OFF之后可以编译通过。

~/SA8155_LV_1_0_v2/apps/apps_proc/poky/build/tmp-glibc/work/x86_64-linux/cmake-native/3.16.5-r0$ vim build/CMakeCache.txt +297

  //Use system-installed zstd
CMAKE_USE_SYSTEM_ZSTD:BOOL=OFF

是否可以通过配置来避免呢?查看cmake的配置信息:

  --system-zstd           use system-installed zstd library
  --no-system-zstd        use cmake-provided zstd library (default)  --- 关键信息
  --system-libarchive     use system-installed libarchive library
  --no-system-libarchive  use cmake-provided libarchive library (default)

其中的--no-system-zstd        use cmake-provided zstd library (default),正是我们要找的。那么如何修改呢?这里需要一点bitbake的基础知识,每个recipe中,可以找到*.bb文件,里面会定义配置阶段的操作,如下:

apps/apps_proc/poky/meta/recipes-devtools/cmake/cmake-native_3.16.5.bb

do_configure () {
	${S}/configure --verbose --prefix=${prefix} --no-system-zstd \
		${@oe.utils.parallel_make_argument(d, '--parallel=%d')} \
		${@bb.utils.contains('CCACHE', 'ccache ', '--enable-ccache', '', d)} \
		-- ${CMAKE_EXTRACONF}
}

这里增加了--no-system-zstd选项。

只需要在这里加上--no-system-zstd即可。

<think>好的,我现在需要帮助用户解决关于下载和安装Qualcomm AI工具链的问题。首先,我得仔细阅读用户的问题,确保理解他们的需求。用户提到他们想下载并安装高通的AI工具链,并询问相关的教程。根据用户提供的引用内容,特别是引用[2]和[3],里面提到了Qualcomm神经处理SDK的设置步骤以及如何编译和链接模型库。 首先,我需要确定用户的操作系统环境,因为不同的系统安装步骤可能不同。引用[2]中提到的是基于Yocto Kirkstone的设备,需要GCC-11.2编译器。这可能意味着用户正在使用嵌入式Linux系统,比如基于Yocto的项目。因此,安装步骤可能涉及获取适用于该环境的工具链。 接下来,我应该按照引用中的信息整理步骤。引用[2]提到了获取工具链的具体步骤,包括安装依赖项、获取SDK、设置环境变量和构建示例应用。此外,引用[3]提到动态加载模型库或静态链接,这可能涉及后续的模型集成步骤,但用户主要关注的是工具链的下载和安装,所以这部分可能放在后面作为补充。 然后,我需要检查是否有官方文档或资源链接可以提供。例如,Qualcomm的开发者网站可能有详细的指南,但用户提供的引用中没有直接给出链接,所以可能需要建议用户访问官方网站或相关页面。 另外,需要注意用户可能需要安装特定的编译器版本,如GCC-11.2,这可能需要在Yocto环境中配置。可能需要指导用户如何获取和配置这些工具,或者参考高通提供的SDK文档。 可能的问题点包括环境变量的正确设置、依赖项的安装是否完整,以及编译过程中可能出现的错误。因此,在回答中应该提醒用户注意这些步骤,并建议查阅官方文档或社区支持以解决具体问题。 最后,生成相关问题的时候,需要围绕工具链的使用、依赖项管理、模型集成以及交叉编译等方面展开,帮助用户进一步了解相关主题。</think>### Qualcomm AI工具链下载与安装步骤 根据高通AI工具链的官方文档和开发者资源[^2][^3],以下是基于**Yocto Kirkstone系统**的安装流程: --- #### 一、环境准备 1. **操作系统要求**:需基于Yocto Kirkstone的Linux环境(如Ubuntu 18.04+或定制嵌入式系统) 2. **依赖项安装**: ```bash sudo apt-get install build-essential cmake git python3-dev ``` --- #### 二、工具链下载 1. **访问高通开发者平台** 前往[Qualcomm Developer Network](https://developer.qualcomm.com/)注册账号并登录。 2. **获取神经处理SDK** 在资源中心搜索**"Qualcomm Neural Processing SDK"**,选择适用于Yocto Kirkstone的版本下载[^2]。 --- #### 三、安装步骤(以Yocto Kirkstone为例) 1. **解压SDK包** ```bash tar -xzvf qualcomm_sdk_yocto_kirkstone.tar.gz cd qualcomm_sdk/ ``` 2. **配置工具链路径** 编辑环境变量文件(如`~/.bashrc`),添加: ```bash export TOOLCHAIN_PATH=/path/to/gcc-11.2 export SDK_ROOT=/path/to/qualcomm_sdk ``` 3. **编译工具链** 执行SDK内置的构建脚本: ```bash ./build-script.sh --target=yocto-kirkstone --toolchain=gcc11.2 ``` --- #### 四、验证安装 1. **运行示例应用** 进入示例项目目录并编译: ```bash cd $SDK_ROOT/samples/classification mkdir build && cd build cmake -DCMAKE_TOOLCHAIN_FILE=$SDK_ROOT/toolchain.cmake .. make ``` 2. **部署到设备** 将生成的可执行文件推送到高通AI硬件(如Snapdragon开发板)运行。 --- #### 注意事项 - **编译器版本**:必须使用GCC-11.2以避免兼容性问题 - **权限问题**:若使用USB连接设备,需配置`udev`规则 - **模型兼容性**:需使用Qualcomm® AI Engine Direct格式的模型文件(.bin和.cpp)[^3] ---
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值