linux c compile Q&A

本文解答了一个常见的编程问题:遇到 'string' is used as a type, but is not defined as a type 的错误提示时如何解决。通过添加 using namespace std; 来确保标准库中的类型能够被正确识别。

1,Q:error msg: 'string' is used as a type, but is not defined as a type.

A:添加 using namespace std;

cmake_minimum_required(VERSION 3.13) project(OPEN_SOURCE_LINUX) include( C O N F I G C M A K E D I R / t o o l c h a i n s / CONFIG C ​ MAKE D ​ IR/toolchains/{CONFIG_TOOLCHAIN_LINUX_DRV}.cmake) set(HI_VERSION_DIR C M A K E C U R R E N T B I N A R Y D I R / l i n u x − CMAKE C ​ URRENT B ​ INARY D ​ IR/linux−{CONFIG_OPENSRC_VERSION_LINUX}) set(HI_IMAGE_NAME “uImage”) add_custom_target(build_linux_vmlinux COMMAND ( M A K E ) v m l i n u x A R C H = (MAKE)vmlinuxARCH={CONFIG_LINUX_KERNEL_TYPE} CROSS_COMPILE=‘ParseError: KaTeX parse error: Double subscript at position 9: {CMAKE_C_̲COMPILER_LAUNCH…{CONFIG_CROSS_COMPILE}’ LOADADDR= C O N F I G L I N U X T E X T O F F S E T K E R N E L I N I T R A M F S S O U R C E = CONFIG L ​ INUX T ​ EXT O ​ FFSETKERNEL I ​ NITRAMFS S ​ OURCE={CONFIG_KERNEL_INITRAMFS_SOURCE_DIR} COMMENT “generate basic linux” WORKING_DIRECTORY ${HI_VERSION_DIR} ) if ( C O N F I G L I N U X K E R N E L T Y P E S T R E Q U A L " a r m " ) s e t ( P A T C H E X C L U D E D I R " a r m 64 " ) a d d c u s t o m t a r g e t ( b u i l d l i n u x i m a g e D E P E N D S CONFIG L ​ INUX K ​ ERNEL T ​ YPESTREQUAL"arm")set(PATCH E ​ XCLUDE D ​ IR"arm64")add c ​ ustom t ​ arget(build l ​ inux i ​ mageDEPENDS<TARGET_NAME_IF_EXISTS:build_mkp_image> COMMAND ( M A K E ) (MAKE){HI_IMAGE_NAME} ARCH= C O N F I G L I N U X K E R N E L T Y P E C R O S S C O M P I L E = ′ CONFIG L ​ INUX K ​ ERNEL T ​ YPECROSS C ​ OMPILE= ′ {CMAKE_C_COMPILER_LAUNCHER} C O N F I G C R O S S C O M P I L E ′ L O A D A D D R = CONFIG C ​ ROSS C ​ OMPILE ′ LOADADDR={CONFIG_LINUX_TEXT_OFFSET} KERNEL_INITRAMFS_SOURCE= C O N F I G K E R N E L I N I T R A M F S S O U R C E D I R C O M M E N T " m a k e l i n u x i m a g e " W O R K I N G D I R E C T O R Y CONFIG K ​ ERNEL I ​ NITRAMFS S ​ OURCE D ​ IRCOMMENT"makelinuximage"WORKING D ​ IRECTORY{HI_VERSION_DIR} ) add_custom_command(TARGET build_linux_image COMMAND C M A K E C O M M A N D − E c o p y CMAKE C ​ OMMAND−Ecopy{HI_VERSION_DIR}/arch/ C O N F I G L I N U X K E R N E L T Y P E / b o o t / CONFIG L ​ INUX K ​ ERNEL T ​ YPE/boot/{HI_IMAGE_NAME} C O N I F G I N S T A L L I M A G E D I R / CONIFG I ​ NSTALL I ​ MAGE D ​ IR/{HI_IMAGE_NAME} COMMENT “install C O N I F G I N S T A L L I M A G E D I R / CONIFG I ​ NSTALL I ​ MAGE D ​ IR/{HI_IMAGE_NAME}” ) else() set(PATCH_EXCLUDE_DIR “arm”) add_custom_target(build_linux_image COMMAND ( M A K E ) A R C H = (MAKE)ARCH={CONFIG_LINUX_KERNEL_TYPE} CROSS_COMPILE=‘ParseError: KaTeX parse error: Double subscript at position 9: {CMAKE_C_̲COMPILER_LAUNCH…{CONFIG_CROSS_COMPILE}’ KERNEL_INITRAMFS_SOURCE= C O N F I G K E R N E L I N I T R A M F S S O U R C E D I R C O M M A N D m k i m a g e − A a r m − O l i n u x − T k e r n e l − e CONFIG K ​ ERNEL I ​ NITRAMFS S ​ OURCE D ​ IRCOMMANDmkimage−Aarm−Olinux−Tkernel−e{CONFIG_LINUX_TEXT_OFFSET} -a 0 -d H I V E R S I O N D I R / a r c h / HI V ​ ERSION D ​ IR/arch/{CONFIG_LINUX_KERNEL_TYPE}/boot/Image H I V E R S I O N D I R / a r c h / HI V ​ ERSION D ​ IR/arch/{CONFIG_LINUX_KERNEL_TYPE}/boot/ H I I M A G E N A M E W O R K I N G D I R E C T O R Y HI I ​ MAGE N ​ AMEWORKING D ​ IRECTORY{HI_VERSION_DIR} ) endif() add_custom_target(build_linux_module DEPENDS build_linux_vmlinux COMMAND ( M A K E ) − C (MAKE)−C{HI_VERSION_DIR} ARCH= C O N F I G L I N U X K E R N E L T Y P E C R O S S C O M P I L E = ′ CONFIG L ​ INUX K ​ ERNEL T ​ YPECROSS C ​ OMPILE= ′ {CMAKE_C_COMPILER_LAUNCHER} C O N F I G C R O S S C O M P I L E ′ m o d u l e s K E R N E L I N I T R A M F S S O U R C E = CONFIG C ​ ROSS C ​ OMPILE ′ modulesKERNEL I ​ NITRAMFS S ​ OURCE={CONFIG_KERNEL_INITRAMFS_SOURCE_DIR} COMMENT “generate linux internals moudle” ) add_custom_target(build_linux_module_install DEPENDS build_linux_module build_linux_vmlinux COMMAND C M A K E C O M M A N D − E m a k e d i r e c t o r y CMAKE C ​ OMMAND−Emake d ​ irectory{CMAKE_CURRENT_BINARY_DIR}/internal_modules COMMAND ( M A K E ) − C (MAKE)−C{HI_VERSION_DIR} modules_install INSTALL_MOD_PATH= C M A K E C U R R E N T B I N A R Y D I R / i n t e r n a l m o d u l e s I N S T A L L M O D S T R I P = − − s t r i p − u n n e e d e d C R O S S C O M P I L E = ′ CMAKE C ​ URRENT B ​ INARY D ​ IR/internal m ​ odulesINSTALL M ​ OD S ​ TRIP=−−strip−unneededCROSS C ​ OMPILE= ′ {CMAKE_C_COMPILER_LAUNCHER} C O N F I G C R O S S C O M P I L E ′ K E R N E L I N I T R A M F S S O U R C E = CONFIG C ​ ROSS C ​ OMPILE ′ KERNEL I ​ NITRAMFS S ​ OURCE={CONFIG_KERNEL_INITRAMFS_SOURCE_DIR} # INSTALL_MOD_PATH= C O N I F G I N S T A L L R O O T F S D I R / l i b / m o d u l e s / CONIFG I ​ NSTALL R ​ OOTFS D ​ IR/lib/modules/{CONFIG_OPENSRC_VERSION_LINUX} COMMENT “install linux internals moudle” COMMAND rm -rf C O N I F G I N S T A L L R O O T F S D I R / l i b / m o d u l e s / ∗ C O M M A N D r m − r f CONIFG I ​ NSTALL R ​ OOTFS D ​ IR/lib/modules/∗COMMANDrm−rf{CONIFG_INSTALL_TMPFS_DIR}/lib/modules/* COMMAND mkdir -p C O N I F G I N S T A L L R O O T F S D I R / l i b / m o d u l e s / CONIFG I ​ NSTALL R ​ OOTFS D ​ IR/lib/modules/{CONFIG_OPENSRC_VERSION_LINUX} COMMAND mkdir -p C O N I F G I N S T A L L T M P F S D I R / l i b / m o d u l e s / CONIFG I ​ NSTALL T ​ MPFS D ​ IR/lib/modules/{CONFIG_OPENSRC_VERSION_LINUX} COMMAND find C M A K E C U R R E N T B I N A R Y D I R / i n t e r n a l m o d u l e s − n a m e " ∗ . k o " ∣ x a r g s − I c p CMAKE C ​ URRENT B ​ INARY D ​ IR/internal m ​ odules−name"∗.ko"∣xargs−Icp{CONIFG_INSTALL_ROOTFS_DIR}/lib/modules/ C O N F I G O P E N S R C V E R S I O N L I N U X C O M M A N D f i n d CONFIG O ​ PENSRC V ​ ERSION L ​ INUXCOMMANDfind{CONIFG_INSTALL_ROOTFS_DIR} -name “ubi*.ko” |xargs -I{} mv {} C O N I F G I N S T A L L T M P F S D I R / l i b / m o d u l e s / CONIFG I ​ NSTALL T ​ MPFS D ​ IR/lib/modules/{CONFIG_OPENSRC_VERSION_LINUX} COMMAND find C O N I F G I N S T A L L R O O T F S D I R − n a m e " ∗ w d t ∗ . k o " ∣ x a r g s − I m v CONIFG I ​ NSTALL R ​ OOTFS D ​ IR−name"∗wdt∗.ko"∣xargs−Imv{CONIFG_INSTALL_TMPFS_DIR}/lib/modules/${CONFIG_OPENSRC_VERSION_LINUX} ) if(CONFIG_CHIP_NAME MATCHES tiangong0 OR CONFIG_CHIP_NAME MATCHES tiangong2) add_custom_command(TARGET build_linux_module_install COMMAND rm -rf C O N I F G I N S T A L L R O O T F S D I R / l i b / m o d u l e s / CONIFG I ​ NSTALL R ​ OOTFS D ​ IR/lib/modules/{CONFIG_OPENSRC_VERSION_LINUX}/realtek.ko ) endif() add_custom_target(build_linux DEPENDS build_linux_vmlinux build_linux_module_install build_linux_module COMMAND bash C O N F I G S H E L L D I R / g e n p a t c h . s h CONFIG S ​ HELL D ​ IR/gen p ​ atch.sh{CMAKE_CURRENT_SOURCE_DIR} C M A K E C U R R E N T B I N A R Y D I R l i n u x − CMAKE C ​ URRENT B ​ INARY D ​ IRlinux−{CONFIG_OPENSRC_VERSION_LINUX} “copy” ) add_dependencies(build_all build_linux) if (CMAKE_BUILD_TYPE STREQUAL “debug”) set(SET_DEBUG_DEFCONFIG_CMD COMMAND H I V E R S I O N D I R / s c r i p t s / c o n f i g − − f i l e HI V ​ ERSION D ​ IR/scripts/config−−file{HI_VERSION_DIR}/.config -e CGROUP_DEBUG COMMAND H I V E R S I O N D I R / s c r i p t s / c o n f i g − − f i l e HI V ​ ERSION D ​ IR/scripts/config−−file{HI_VERSION_DIR}/.config -e DEBUG_ATOMIC_SLEEP) else() set(SET_DEBUG_DEFCONFIG_CMD) endif() to merge kernel debug config above after resolving the danxia issues if (CMAKE_BUILD_TYPE STREQUAL “debug”) set(SET_DEBUG_DEFCONFIG_CMD COMMAND H I V E R S I O N D I R / s c r i p t s / c o n f i g − − f i l e HI V ​ ERSION D ​ IR/scripts/config−−file{HI_VERSION_DIR}/.config -e HSAN_DFX_EASYSHELL COMMAND H I V E R S I O N D I R / s c r i p t s / c o n f i g − − f i l e HI V ​ ERSION D ​ IR/scripts/config−−file{HI_VERSION_DIR}/.config -e KERNEL_NOCFI_NONE) endif() if(CONFIG_LINUX_KASAN AND EXISTS C M A K E C U R R E N T S O U R C E D I R / p a t c h − l i n u x − CMAKE C ​ URRENT S ​ OURCE D ​ IR/patch−linux−{CONFIG_OPENSRC_VERSION_LINUX}-kasan) set(SET_KASAN_DEFCONFIG_CMD COMMAND H I V E R S I O N D I R / s c r i p t s / c o n f i g − − f i l e HI V ​ ERSION D ​ IR/scripts/config−−file{HI_VERSION_DIR}/.config -e KASAN) set(SET_KASAN_PATCH_CMD COMMAND cp -rf C M A K E C U R R E N T S O U R C E D I R / p a t c h − l i n u x − CMAKE C ​ URRENT S ​ OURCE D ​ IR/patch−linux−{CONFIG_OPENSRC_VERSION_LINUX}-kasan/* ${HI_VERSION_DIR}/) else() set(SET_KASAN_DEFCONFIG_CMD) set(SET_KASAN_PATCH_CMD) endif() add_custom_target(prebuild_linux DEPENDS prebuild_${CONFIG_TOOLCHAIN_NAME} COMMAND echo “---------------prebuild linux----------------------” COMMAND rm -rf linux- C O N F I G O P E N S R C V E R S I O N L I N U X C O M M A N D t a r x f CONFIG O ​ PENSRC V ​ ERSION L ​ INUXCOMMANDtarxf{CMAKE_CURRENT_SOURCE_DIR}/linux- C O N F I G O P E N S R C V E R S I O N L I N U X . t a r . b z 2 C O M M A N D e c h o " − − − − − − − − − − − − − − − p a t c h l i n u x − − − − − − − − − − − − − − − − − − − − − − − − − " C O M M A N D b a s h CONFIG O ​ PENSRC V ​ ERSION L ​ INUX.tar.bz2COMMANDecho"−−−−−−−−−−−−−−−patchlinux−−−−−−−−−−−−−−−−−−−−−−−−−"COMMANDbash{CONFIG_SHELL_DIR}/gen_patch.sh C M A K E C U R R E N T S O U R C E D I R CMAKE C ​ URRENT S ​ OURCE D ​ IR{CMAKE_CURRENT_BINARY_DIR} linux- C O N F I G O P E N S R C V E R S I O N L I N U X CONFIG O ​ PENSRC V ​ ERSION L ​ INUX{SET_KASAN_PATCH_CMD} COMMAND echo “---------------config linux------------------------” COMMAND ( M A K E ) − C (MAKE)−C{HI_VERSION_DIR} ARCH= C O N F I G L I N U X K E R N E L T Y P E CONFIG L ​ INUX K ​ ERNEL T ​ YPE{CONFIG_LINUX_DEFCONFIG} CROSS_COMPILE=‘ParseError: KaTeX parse error: Double subscript at position 9: {CMAKE_C_̲COMPILER_LAUNCH…{CONFIG_CROSS_COMPILE}’ KERNEL_INITRAMFS_SOURCE= C O N F I G K E R N E L I N I T R A M F S S O U R C E D I R CONFIG K ​ ERNEL I ​ NITRAMFS S ​ OURCE D ​ IR{SET_DEBUG_DEFCONFIG_CMD} S E T K A S A N D E F C O N F I G C M D C O M M A N D SET K ​ ASAN D ​ EFCONFIG C ​ MDCOMMAND(MAKE) -C H I V E R S I O N D I R A R C H = HI V ​ ERSION D ​ IRARCH={CONFIG_LINUX_KERNEL_TYPE} H I V E R S I O N D I R / . c o n f i g C R O S S C O M P I L E = ′ HI V ​ ERSION D ​ IR/.configCROSS C ​ OMPILE= ′ {CMAKE_C_COMPILER_LAUNCHER} C O N F I G C R O S S C O M P I L E ′ K E R N E L I N I T R A M F S S O U R C E = CONFIG C ​ ROSS C ​ OMPILE ′ KERNEL I ​ NITRAMFS S ​ OURCE={CONFIG_KERNEL_INITRAMFS_SOURCE_DIR} ) add_dependencies(prebuild_all prebuild_linux) add_dependencies(prebuild_linux prebuild_crosstool) add_custom_target(clean_linux COMMAND echo “---------------clean linux------------------------” COMMAND ( M A K E ) − C (MAKE)−C{HI_VERSION_DIR} ARCH= C O N F I G L I N U X K E R N E L T Y P E c l e a n C R O S S C O M P I L E = ′ CONFIG L ​ INUX K ​ ERNEL T ​ YPEcleanCROSS C ​ OMPILE= ′ {CMAKE_C_COMPILER_LAUNCHER} C O N F I G C R O S S C O M P I L E ′ C O M M A N D r m − r f CONFIG C ​ ROSS C ​ OMPILE ′ COMMANDrm−rf{CONIFG_INSTALL_IMAGE_DIR}/ H I I M A G E N A M E C O M M A N D r m − r f HI I ​ MAGE N ​ AMECOMMANDrm−rf{CONIFG_INSTALL_IMAGE_DIR}/kernel.images ) add_dependencies(clean_all clean_linux) add_custom_target(client_build_linux DEPENDS build_linux) add_custom_target(client_prebuild_linux DEPENDS prebuild_linux) add_dependencies(client_build_all client_build_linux) add_dependencies(client_prebuild_all client_prebuild_linux) release_self() release_dir(patch-linux- C O N F I G O P E N S R C V E R S I O N L I N U X ) r e l e a s e f i l e ( l i n u x − CONFIG O ​ PENSRC V ​ ERSION L ​ INUX)release f ​ ile(linux−{CONFIG_OPENSRC_VERSION_LINUX}.tar.bz2) cmake_minimum_required(VERSION 3.13) project(OPEN_SOURCE_LINUX) include( C O N F I G C M A K E D I R / t o o l c h a i n s / CONFIG C ​ MAKE D ​ IR/toolchains/{CONFIG_TOOLCHAIN_LINUX_DRV}.cmake) set(HI_VERSION_DIR C M A K E C U R R E N T B I N A R Y D I R / l i n u x − CMAKE C ​ URRENT B ​ INARY D ​ IR/linux−{CONFIG_OPENSRC_VERSION_LINUX}) set(HI_IMAGE_NAME “uImage”) add_custom_target(build_linux_vmlinux COMMAND ( M A K E ) v m l i n u x A R C H = (MAKE)vmlinuxARCH={CONFIG_LINUX_KERNEL_TYPE} CROSS_COMPILE=‘ParseError: KaTeX parse error: Double subscript at position 9: {CMAKE_C_̲COMPILER_LAUNCH…{CONFIG_CROSS_COMPILE}’ LOADADDR= C O N F I G L I N U X T E X T O F F S E T K E R N E L I N I T R A M F S S O U R C E = CONFIG L ​ INUX T ​ EXT O ​ FFSETKERNEL I ​ NITRAMFS S ​ OURCE={CONFIG_KERNEL_INITRAMFS_SOURCE_DIR} COMMENT “generate basic linux” WORKING_DIRECTORY ${HI_VERSION_DIR} ) if ( C O N F I G L I N U X K E R N E L T Y P E S T R E Q U A L " a r m " ) s e t ( P A T C H E X C L U D E D I R " a r m 64 " ) a d d c u s t o m t a r g e t ( b u i l d l i n u x i m a g e D E P E N D S CONFIG L ​ INUX K ​ ERNEL T ​ YPESTREQUAL"arm")set(PATCH E ​ XCLUDE D ​ IR"arm64")add c ​ ustom t ​ arget(build l ​ inux i ​ mageDEPENDS<TARGET_NAME_IF_EXISTS:build_mkp_image> COMMAND ( M A K E ) (MAKE){HI_IMAGE_NAME} ARCH= C O N F I G L I N U X K E R N E L T Y P E C R O S S C O M P I L E = ′ CONFIG L ​ INUX K ​ ERNEL T ​ YPECROSS C ​ OMPILE= ′ {CMAKE_C_COMPILER_LAUNCHER} C O N F I G C R O S S C O M P I L E ′ L O A D A D D R = CONFIG C ​ ROSS C ​ OMPILE ′ LOADADDR={CONFIG_LINUX_TEXT_OFFSET} KERNEL_INITRAMFS_SOURCE= C O N F I G K E R N E L I N I T R A M F S S O U R C E D I R C O M M E N T " m a k e l i n u x i m a g e " W O R K I N G D I R E C T O R Y CONFIG K ​ ERNEL I ​ NITRAMFS S ​ OURCE D ​ IRCOMMENT"makelinuximage"WORKING D ​ IRECTORY{HI_VERSION_DIR} ) add_custom_command(TARGET build_linux_image COMMAND C M A K E C O M M A N D − E c o p y CMAKE C ​ OMMAND−Ecopy{HI_VERSION_DIR}/arch/ C O N F I G L I N U X K E R N E L T Y P E / b o o t / CONFIG L ​ INUX K ​ ERNEL T ​ YPE/boot/{HI_IMAGE_NAME} C O N I F G I N S T A L L I M A G E D I R / CONIFG I ​ NSTALL I ​ MAGE D ​ IR/{HI_IMAGE_NAME} COMMENT “install C O N I F G I N S T A L L I M A G E D I R / CONIFG I ​ NSTALL I ​ MAGE D ​ IR/{HI_IMAGE_NAME}” ) else() set(PATCH_EXCLUDE_DIR “arm”) add_custom_target(build_linux_image COMMAND ( M A K E ) A R C H = (MAKE)ARCH={CONFIG_LINUX_KERNEL_TYPE} CROSS_COMPILE=‘ParseError: KaTeX parse error: Double subscript at position 9: {CMAKE_C_̲COMPILER_LAUNCH…{CONFIG_CROSS_COMPILE}’ KERNEL_INITRAMFS_SOURCE= C O N F I G K E R N E L I N I T R A M F S S O U R C E D I R C O M M A N D m k i m a g e − A a r m − O l i n u x − T k e r n e l − e CONFIG K ​ ERNEL I ​ NITRAMFS S ​ OURCE D ​ IRCOMMANDmkimage−Aarm−Olinux−Tkernel−e{CONFIG_LINUX_TEXT_OFFSET} -a 0 -d H I V E R S I O N D I R / a r c h / HI V ​ ERSION D ​ IR/arch/{CONFIG_LINUX_KERNEL_TYPE}/boot/Image H I V E R S I O N D I R / a r c h / HI V ​ ERSION D ​ IR/arch/{CONFIG_LINUX_KERNEL_TYPE}/boot/ H I I M A G E N A M E W O R K I N G D I R E C T O R Y HI I ​ MAGE N ​ AMEWORKING D ​ IRECTORY{HI_VERSION_DIR} ) endif() add_custom_target(build_linux_module DEPENDS build_linux_vmlinux COMMAND ( M A K E ) − C (MAKE)−C{HI_VERSION_DIR} ARCH= C O N F I G L I N U X K E R N E L T Y P E C R O S S C O M P I L E = ′ CONFIG L ​ INUX K ​ ERNEL T ​ YPECROSS C ​ OMPILE= ′ {CMAKE_C_COMPILER_LAUNCHER} C O N F I G C R O S S C O M P I L E ′ m o d u l e s K E R N E L I N I T R A M F S S O U R C E = CONFIG C ​ ROSS C ​ OMPILE ′ modulesKERNEL I ​ NITRAMFS S ​ OURCE={CONFIG_KERNEL_INITRAMFS_SOURCE_DIR} COMMENT “generate linux internals moudle” ) add_custom_target(build_linux_module_install DEPENDS build_linux_module build_linux_vmlinux COMMAND C M A K E C O M M A N D − E m a k e d i r e c t o r y CMAKE C ​ OMMAND−Emake d ​ irectory{CMAKE_CURRENT_BINARY_DIR}/internal_modules COMMAND ( M A K E ) − C (MAKE)−C{HI_VERSION_DIR} modules_install INSTALL_MOD_PATH= C M A K E C U R R E N T B I N A R Y D I R / i n t e r n a l m o d u l e s I N S T A L L M O D S T R I P = − − s t r i p − u n n e e d e d C R O S S C O M P I L E = ′ CMAKE C ​ URRENT B ​ INARY D ​ IR/internal m ​ odulesINSTALL M ​ OD S ​ TRIP=−−strip−unneededCROSS C ​ OMPILE= ′ {CMAKE_C_COMPILER_LAUNCHER} C O N F I G C R O S S C O M P I L E ′ K E R N E L I N I T R A M F S S O U R C E = CONFIG C ​ ROSS C ​ OMPILE ′ KERNEL I ​ NITRAMFS S ​ OURCE={CONFIG_KERNEL_INITRAMFS_SOURCE_DIR} # INSTALL_MOD_PATH= C O N I F G I N S T A L L R O O T F S D I R / l i b / m o d u l e s / CONIFG I ​ NSTALL R ​ OOTFS D ​ IR/lib/modules/{CONFIG_OPENSRC_VERSION_LINUX} COMMENT “install linux internals moudle” COMMAND rm -rf C O N I F G I N S T A L L R O O T F S D I R / l i b / m o d u l e s / ∗ C O M M A N D r m − r f CONIFG I ​ NSTALL R ​ OOTFS D ​ IR/lib/modules/∗COMMANDrm−rf{CONIFG_INSTALL_TMPFS_DIR}/lib/modules/* COMMAND mkdir -p C O N I F G I N S T A L L R O O T F S D I R / l i b / m o d u l e s / CONIFG I ​ NSTALL R ​ OOTFS D ​ IR/lib/modules/{CONFIG_OPENSRC_VERSION_LINUX} COMMAND mkdir -p C O N I F G I N S T A L L T M P F S D I R / l i b / m o d u l e s / CONIFG I ​ NSTALL T ​ MPFS D ​ IR/lib/modules/{CONFIG_OPENSRC_VERSION_LINUX} COMMAND find C M A K E C U R R E N T B I N A R Y D I R / i n t e r n a l m o d u l e s − n a m e " ∗ . k o " ∣ x a r g s − I c p CMAKE C ​ URRENT B ​ INARY D ​ IR/internal m ​ odules−name"∗.ko"∣xargs−Icp{CONIFG_INSTALL_ROOTFS_DIR}/lib/modules/ C O N F I G O P E N S R C V E R S I O N L I N U X C O M M A N D f i n d CONFIG O ​ PENSRC V ​ ERSION L ​ INUXCOMMANDfind{CONIFG_INSTALL_ROOTFS_DIR} -name “ubi*.ko” |xargs -I{} mv {} C O N I F G I N S T A L L T M P F S D I R / l i b / m o d u l e s / CONIFG I ​ NSTALL T ​ MPFS D ​ IR/lib/modules/{CONFIG_OPENSRC_VERSION_LINUX} COMMAND find C O N I F G I N S T A L L R O O T F S D I R − n a m e " ∗ w d t ∗ . k o " ∣ x a r g s − I m v CONIFG I ​ NSTALL R ​ OOTFS D ​ IR−name"∗wdt∗.ko"∣xargs−Imv{CONIFG_INSTALL_TMPFS_DIR}/lib/modules/${CONFIG_OPENSRC_VERSION_LINUX} ) if(CONFIG_CHIP_NAME MATCHES tiangong0 OR CONFIG_CHIP_NAME MATCHES tiangong2) add_custom_command(TARGET build_linux_module_install COMMAND rm -rf C O N I F G I N S T A L L R O O T F S D I R / l i b / m o d u l e s / CONIFG I ​ NSTALL R ​ OOTFS D ​ IR/lib/modules/{CONFIG_OPENSRC_VERSION_LINUX}/realtek.ko ) endif() add_custom_target(build_linux DEPENDS build_linux_vmlinux build_linux_module_install build_linux_module COMMAND bash C O N F I G S H E L L D I R / g e n p a t c h . s h CONFIG S ​ HELL D ​ IR/gen p ​ atch.sh{CMAKE_CURRENT_SOURCE_DIR} C M A K E C U R R E N T B I N A R Y D I R l i n u x − CMAKE C ​ URRENT B ​ INARY D ​ IRlinux−{CONFIG_OPENSRC_VERSION_LINUX} “copy” ) add_dependencies(build_all build_linux) if (CMAKE_BUILD_TYPE STREQUAL “debug”) set(SET_DEBUG_DEFCONFIG_CMD COMMAND H I V E R S I O N D I R / s c r i p t s / c o n f i g − − f i l e HI V ​ ERSION D ​ IR/scripts/config−−file{HI_VERSION_DIR}/.config -e CGROUP_DEBUG COMMAND H I V E R S I O N D I R / s c r i p t s / c o n f i g − − f i l e HI V ​ ERSION D ​ IR/scripts/config−−file{HI_VERSION_DIR}/.config -e DEBUG_ATOMIC_SLEEP) else() set(SET_DEBUG_DEFCONFIG_CMD) endif() to merge kernel debug config above after resolving the danxia issues if (CMAKE_BUILD_TYPE STREQUAL “debug”) set(SET_DEBUG_DEFCONFIG_CMD COMMAND H I V E R S I O N D I R / s c r i p t s / c o n f i g − − f i l e HI V ​ ERSION D ​ IR/scripts/config−−file{HI_VERSION_DIR}/.config -e HSAN_DFX_EASYSHELL COMMAND H I V E R S I O N D I R / s c r i p t s / c o n f i g − − f i l e HI V ​ ERSION D ​ IR/scripts/config−−file{HI_VERSION_DIR}/.config -e KERNEL_NOCFI_NONE) endif() if(CONFIG_LINUX_KASAN AND EXISTS C M A K E C U R R E N T S O U R C E D I R / p a t c h − l i n u x − CMAKE C ​ URRENT S ​ OURCE D ​ IR/patch−linux−{CONFIG_OPENSRC_VERSION_LINUX}-kasan) set(SET_KASAN_DEFCONFIG_CMD COMMAND H I V E R S I O N D I R / s c r i p t s / c o n f i g − − f i l e HI V ​ ERSION D ​ IR/scripts/config−−file{HI_VERSION_DIR}/.config -e KASAN) set(SET_KASAN_PATCH_CMD COMMAND cp -rf C M A K E C U R R E N T S O U R C E D I R / p a t c h − l i n u x − CMAKE C ​ URRENT S ​ OURCE D ​ IR/patch−linux−{CONFIG_OPENSRC_VERSION_LINUX}-kasan/* ${HI_VERSION_DIR}/) else() set(SET_KASAN_DEFCONFIG_CMD) set(SET_KASAN_PATCH_CMD) endif() add_custom_target(prebuild_linux DEPENDS prebuild_${CONFIG_TOOLCHAIN_NAME} COMMAND echo “---------------prebuild linux----------------------” COMMAND rm -rf linux- C O N F I G O P E N S R C V E R S I O N L I N U X C O M M A N D t a r x f CONFIG O ​ PENSRC V ​ ERSION L ​ INUXCOMMANDtarxf{CMAKE_CURRENT_SOURCE_DIR}/linux- C O N F I G O P E N S R C V E R S I O N L I N U X . t a r . b z 2 C O M M A N D e c h o " − − − − − − − − − − − − − − − p a t c h l i n u x − − − − − − − − − − − − − − − − − − − − − − − − − " C O M M A N D b a s h CONFIG O ​ PENSRC V ​ ERSION L ​ INUX.tar.bz2COMMANDecho"−−−−−−−−−−−−−−−patchlinux−−−−−−−−−−−−−−−−−−−−−−−−−"COMMANDbash{CONFIG_SHELL_DIR}/gen_patch.sh C M A K E C U R R E N T S O U R C E D I R CMAKE C ​ URRENT S ​ OURCE D ​ IR{CMAKE_CURRENT_BINARY_DIR} linux- C O N F I G O P E N S R C V E R S I O N L I N U X CONFIG O ​ PENSRC V ​ ERSION L ​ INUX{SET_KASAN_PATCH_CMD} COMMAND echo “---------------config linux------------------------” COMMAND ( M A K E ) − C (MAKE)−C{HI_VERSION_DIR} ARCH= C O N F I G L I N U X K E R N E L T Y P E CONFIG L ​ INUX K ​ ERNEL T ​ YPE{CONFIG_LINUX_DEFCONFIG} CROSS_COMPILE=‘ParseError: KaTeX parse error: Double subscript at position 9: {CMAKE_C_̲COMPILER_LAUNCH…{CONFIG_CROSS_COMPILE}’ KERNEL_INITRAMFS_SOURCE= C O N F I G K E R N E L I N I T R A M F S S O U R C E D I R CONFIG K ​ ERNEL I ​ NITRAMFS S ​ OURCE D ​ IR{SET_DEBUG_DEFCONFIG_CMD} S E T K A S A N D E F C O N F I G C M D C O M M A N D SET K ​ ASAN D ​ EFCONFIG C ​ MDCOMMAND(MAKE) -C H I V E R S I O N D I R A R C H = HI V ​ ERSION D ​ IRARCH={CONFIG_LINUX_KERNEL_TYPE} H I V E R S I O N D I R / . c o n f i g C R O S S C O M P I L E = ′ HI V ​ ERSION D ​ IR/.configCROSS C ​ OMPILE= ′ {CMAKE_C_COMPILER_LAUNCHER} C O N F I G C R O S S C O M P I L E ′ K E R N E L I N I T R A M F S S O U R C E = CONFIG C ​ ROSS C ​ OMPILE ′ KERNEL I ​ NITRAMFS S ​ OURCE={CONFIG_KERNEL_INITRAMFS_SOURCE_DIR} ) add_dependencies(prebuild_all prebuild_linux) add_dependencies(prebuild_linux prebuild_crosstool) add_custom_target(clean_linux COMMAND echo “---------------clean linux------------------------” COMMAND ( M A K E ) − C (MAKE)−C{HI_VERSION_DIR} ARCH= C O N F I G L I N U X K E R N E L T Y P E c l e a n C R O S S C O M P I L E = ′ CONFIG L ​ INUX K ​ ERNEL T ​ YPEcleanCROSS C ​ OMPILE= ′ {CMAKE_C_COMPILER_LAUNCHER} C O N F I G C R O S S C O M P I L E ′ C O M M A N D r m − r f CONFIG C ​ ROSS C ​ OMPILE ′ COMMANDrm−rf{CONIFG_INSTALL_IMAGE_DIR}/ H I I M A G E N A M E C O M M A N D r m − r f HI I ​ MAGE N ​ AMECOMMANDrm−rf{CONIFG_INSTALL_IMAGE_DIR}/kernel.images ) add_dependencies(clean_all clean_linux) add_custom_target(client_build_linux DEPENDS build_linux) add_custom_target(client_prebuild_linux DEPENDS prebuild_linux) add_dependencies(client_build_all client_build_linux) add_dependencies(client_prebuild_all client_prebuild_linux) release_self() release_dir(patch-linux- C O N F I G O P E N S R C V E R S I O N L I N U X ) r e l e a s e f i l e ( l i n u x − CONFIG O ​ PENSRC V ​ ERSION L ​ INUX)release f ​ ile(linux−{CONFIG_OPENSRC_VERSION_LINUX}.tar.bz2) 这里是和否有代码可以控制kasan的debug开关?
08-12
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值