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

硬件平台:高通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即可。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Yocto Project 提供了一种用于构建嵌入式 Linux 发行版的框架,其中包括交叉编译工具链的构建。通过 Yocto Project,您可以根据特定的硬件平台和软件需求,定制和构建适合您的嵌入式系统。 要构建 Yocto Project 的交叉编译工具链,您需要执行以下步骤: 1. 配置环境:确保您的开发环境中已安装所需的工具,如 Git、Python 等。 2. 获取源码:从 Yocto Project 官方网站下载或使用 Git 克隆 Yocto Project 的源代码。 3. 配置构建:进入源码目录,运行 `source oe-init-build-env` 命令初始化构建环境。然后,通过编辑 `conf/local.conf` 文件来配置构建选项,例如目标硬件平台、软件包选择等。 4. 执行构建:运行 `bitbake <image-name>` 命令来构建 Yocto Project 镜像。其中 `<image-name>` 是您想要构建的镜像名称,例如 core-image-minimal。 5. 等待编译完成:Yocto Project 的构建过程可能需要一些时间,具体取决于您的系统性能和所选择的软件包数量。 6. 使用工具链:一旦构建过程完成,您将在 `tmp/sysroots/<target-arch>/` 目录下找到生成的交叉编译工具链。可以将此路径添加到您的环境变量中,以便在开发过程中使用交叉编译工具链。 请注意,以上步骤仅概述了构建 Yocto Project 交叉编译工具链的基本过程。实际操作可能会因您的需求和特定的硬件平台而有所不同。建议参考 Yocto Project 官方文档以获取更详细的指导和信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值