关于建立企业网站的方案内容h5开发网站优点

张小明 2026/1/10 11:31:21
关于建立企业网站的方案内容,h5开发网站优点,网站建设几点关门,深圳市找工作直招这个写了自动配置cmake环境脚本#xff0c;可以自己改自己用的交叉编译器。 【stm32】bash自动配置buildenv自动配置编译环境_edgetx 编译-CSDN博客 平台ubuntu22.04#xff0c;代码查看使用vscode。背景为一套可以按要求为不同stm32编译同样功能的代码。 使用了CMake缓存…这个写了自动配置cmake环境脚本可以自己改自己用的交叉编译器。【stm32】bash自动配置buildenv自动配置编译环境_edgetx 编译-CSDN博客平台ubuntu22.04代码查看使用vscode。背景为一套可以按要求为不同stm32编译同样功能的代码。使用了CMake缓存文件可以提高后续代码编译速度。文件为CMakeCache.txt。arm-none-eabi.cmake# arm-none-eabi toolchain set(CMAKE_SYSTEM_NAME Generic) set(CMAKE_SYSTEM_PROCESSOR arm) set(CMAKE_CXX_STANDARD 17) set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY) if(MINGW OR WIN32) set(EXE_SUFFIX .exe) set(CMAKE_OBJECT_PATH_MAX 200) endif() if(ARM_TOOLCHAIN_DIR) cmake_path(SET ARM_TOOLCHAIN_DIR NORMALIZE ${ARM_TOOLCHAIN_DIR}) set(ARM_TOOLCHAIN_DIR ${ARM_TOOLCHAIN_DIR}/) endif() set(CMAKE_AR ${ARM_TOOLCHAIN_DIR}arm-none-eabi-ar${EXE_SUFFIX}) set(CMAKE_ASM_COMPILER ${ARM_TOOLCHAIN_DIR}arm-none-eabi-gcc${EXE_SUFFIX}) set(CMAKE_C_COMPILER ${ARM_TOOLCHAIN_DIR}arm-none-eabi-gcc${EXE_SUFFIX}) set(CMAKE_CXX_COMPILER ${ARM_TOOLCHAIN_DIR}arm-none-eabi-g${EXE_SUFFIX}) set(CMAKE_LINKER ${ARM_TOOLCHAIN_DIR}arm-none-eabi-ld${EXE_SUFFIX}) set(CMAKE_OBJCOPY ${ARM_TOOLCHAIN_DIR}arm-none-eabi-objcopy${EXE_SUFFIX} CACHE INTERNAL ) set(CMAKE_RANLIB ${ARM_TOOLCHAIN_DIR}arm-none-eabi-ranlib${EXE_SUFFIX} CACHE INTERNAL ) set(CMAKE_SIZE_UTIL ${ARM_TOOLCHAIN_DIR}arm-none-eabi-size${EXE_SUFFIX} CACHE INTERNAL ) set(CMAKE_STRIP ${ARM_TOOLCHAIN_DIR}arm-none-eabi-strip${EXE_SUFFIX} CACHE INTERNAL ) set(CMAKE_GCOV ${ARM_TOOLCHAIN_DIR}arm-none-eabi-gcov${EXE_SUFFIX} CACHE INTERNAL ) # Generate .elf files set(CMAKE_EXECUTABLE_SUFFIX .elf) set(CMAKE_EXECUTABLE_SUFFIX_C .elf) set(CMAKE_EXECUTABLE_SUFFIX_CXX .elf) # Default C compiler flags set(CMAKE_C_FLAGS_DEBUG_INIT -g3 -Og -Wall -pedantic -DDEBUG) set(CMAKE_C_FLAGS_DEBUG ${CMAKE_C_FLAGS_DEBUG_INIT} CACHE STRING FORCE) set(CMAKE_C_FLAGS_RELEASE_INIT -O3 -Wall) set(CMAKE_C_FLAGS_RELEASE ${CMAKE_C_FLAGS_RELEASE_INIT} CACHE STRING FORCE) # Default C compiler flags set(CMAKE_CXX_FLAGS_DEBUG_INIT -g3 -Og -Wall -pedantic -DDEBUG) set(CMAKE_CXX_FLAGS_DEBUG ${CMAKE_CXX_FLAGS_DEBUG_INIT} CACHE STRING FORCE) set(CMAKE_CXX_FLAGS_RELEASE_INIT -O3 -Wall) set(CMAKE_CXX_FLAGS_RELEASE ${CMAKE_CXX_FLAGS_RELEASE_INIT} CACHE STRING FORCE) # customize linker command set(CMAKE_EXE_LINKER_FLAGS ) set(CMAKE_C_LINK_EXECUTABLE CMAKE_C_COMPILER FLAGS LINK_FLAGS OBJECTS -o TARGET LINK_LIBRARIES) set(CMAKE_CXX_LINK_EXECUTABLE CMAKE_CXX_COMPILER FLAGS LINK_FLAGS OBJECTS -o TARGET LINK_LIBRARIES) # 工具链文件中的标准配置 set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) # 构建工具来自主机 set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) # 库必须来自ARM工具链 set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) # 头文件必须来自ARM工具链下面两个可以用默认不添加到代码中。set(CMAKE_C_STANDARD_REQUIRED ON) set(CMAKE_C_EXTENSIONS ON)行1作用如果编译器不支持指定的 C11 标准报错并停止构建。大部分用off行2作用允许使用编译器特定的扩展功能。#-stdgnu11。大部分用on开头设置# arm-none-eabi toolchain set(CMAKE_SYSTEM_NAME Generic) set(CMAKE_SYSTEM_PROCESSOR arm) set(CMAKE_CXX_STANDARD 17)作用告诉 CMake 这是裸机系统无操作系统禁用所有操作系统特定功能。作用指定目标处理器架构为 ARM。作用设置 C 语言标准为 C17注意这里只设置了C没有设置C标准。if(MINGW OR WIN32) set(EXE_SUFFIX .exe) set(CMAKE_OBJECT_PATH_MAX 200) endif()Windows 平台特殊处理添加.exe后缀并解决长路径问题。toolchain设置工具不代表一定使用。加粗的要注意一点。工具作用在STM32开发中的具体用途arm-none-eabi-gccC编译器编译C源代码为STM32机器码arm-none-eabi-gC编译器编译C代码如果项目使用arm-none-eabi-ld链接器将多个.o文件链接成最终可执行文件arm-none-eabi-ar静态库工具创建和管理静态库文件(.a)arm-none-eabi-objcopy二进制转换将ELF转换为HEX/BIN烧录文件arm-none-eabi-objdump反汇编查看机器码对应的汇编指令arm-none-eabi-size大小分析查看固件各段大小Flash/RAM使用arm-none-eabi-strip符号剔除移除调试符号减小固件大小arm-none-eabi-ranlib库索引为静态库生成索引加快链接速度arm-none-eabi-gcov代码覆盖测试覆盖率分析开发阶段if(ARM_TOOLCHAIN_DIR) cmake_path(SET ARM_TOOLCHAIN_DIR NORMALIZE ${ARM_TOOLCHAIN_DIR}) set(ARM_TOOLCHAIN_DIR ${ARM_TOOLCHAIN_DIR}/) endif() set(CMAKE_AR ${ARM_TOOLCHAIN_DIR}arm-none-eabi-ar${EXE_SUFFIX}) set(CMAKE_ASM_COMPILER ${ARM_TOOLCHAIN_DIR}arm-none-eabi-gcc${EXE_SUFFIX}) set(CMAKE_C_COMPILER ${ARM_TOOLCHAIN_DIR}arm-none-eabi-gcc${EXE_SUFFIX}) set(CMAKE_CXX_COMPILER ${ARM_TOOLCHAIN_DIR}arm-none-eabi-g${EXE_SUFFIX}) set(CMAKE_LINKER ${ARM_TOOLCHAIN_DIR}arm-none-eabi-ld${EXE_SUFFIX}) set(CMAKE_OBJCOPY ${ARM_TOOLCHAIN_DIR}arm-none-eabi-objcopy${EXE_SUFFIX} CACHE INTERNAL ) set(CMAKE_RANLIB ${ARM_TOOLCHAIN_DIR}arm-none-eabi-ranlib${EXE_SUFFIX} CACHE INTERNAL ) set(CMAKE_SIZE_UTIL ${ARM_TOOLCHAIN_DIR}arm-none-eabi-size${EXE_SUFFIX} CACHE INTERNAL ) set(CMAKE_STRIP ${ARM_TOOLCHAIN_DIR}arm-none-eabi-strip${EXE_SUFFIX} CACHE INTERNAL ) set(CMAKE_GCOV ${ARM_TOOLCHAIN_DIR}arm-none-eabi-gcov${EXE_SUFFIX} CACHE INTERNAL )这里建议自己设置。没有设置路径会在Path下找。设置全套编译工具使用 GCC 作为 C/C/ASM 编译器ld 作为链接器。有cache的行是设置二进制工具并缓存避免重复查找。对于set(CMAKE_OBJCOPY ${ARM_TOOLCHAIN_DIR}arm-none-eabi-objcopy${EXE_SUFFIX} CACHE INTERNAL )cache缓存部分作用示例CACHE将变量存入CMake缓存持久化保存INTERNAL内部变量不显示在GUI中对用户隐藏变量描述空字符串无需描述链接器使用使用 g 作为链接器set(CMAKE_LINKER ${TOOLCHAIN_PREFIX}g)优点✅自动处理C标准库libstdc✅自动处理异常处理unwind库✅自动处理静态构造函数✅简化C项目配置缺点❌ 可能链接不必要的C库增加固件大小❌ 对纯C项目有些过重使用 ld 作为链接器set(CMAKE_LINKER ${TOOLCHAIN_PREFIX}ld)这里用ld作为链接器因为编译bootloader需要体积小的固件。优点极致精简只链接明确指定的库完全控制链接过程固件体积最小缺点手动管理所有库依赖C特性异常、静态构造需要手动配置生成 .elf 文件# Generate .elf files set(CMAKE_EXECUTABLE_SUFFIX .elf) set(CMAKE_EXECUTABLE_SUFFIX_C .elf) set(CMAKE_EXECUTABLE_SUFFIX_CXX .elf)设置可执行文件输出格式为 ELF这是嵌入式系统的标准格式。调试/发布标志CMake的预设机制# Default C compiler flags set(CMAKE_C_FLAGS_DEBUG_INIT -g3 -Og -Wall -pedantic -DDEBUG) set(CMAKE_C_FLAGS_DEBUG ${CMAKE_C_FLAGS_DEBUG_INIT} CACHE STRING FORCE) set(CMAKE_C_FLAGS_RELEASE_INIT -O3 -Wall) set(CMAKE_C_FLAGS_RELEASE ${CMAKE_C_FLAGS_RELEASE_INIT} CACHE STRING FORCE) # Default C compiler flags set(CMAKE_CXX_FLAGS_DEBUG_INIT -g3 -Og -Wall -pedantic -DDEBUG) set(CMAKE_CXX_FLAGS_DEBUG ${CMAKE_CXX_FLAGS_DEBUG_INIT} CACHE STRING FORCE) set(CMAKE_CXX_FLAGS_RELEASE_INIT -O3 -Wall) set(CMAKE_CXX_FLAGS_RELEASE ${CMAKE_CXX_FLAGS_RELEASE_INIT} CACHE STRING FORCE)CMake的预设机制这里的CMAKE_C_FLAGS_RELEASE和CMAKE_CXX_FLAGS_DEBUG作用于后面的编译命令中的占位符FLAGS两个使用哪一个取决于你的编译模式。Cmake有四种内置编译模式Debug、Release、MinSizeRel和RelWithDebInfo这里用了Debug和Release。命令cmake -DCMAKE_BUILD_TYPEDebug可以切换编译模式。C 语言set(CMAKE_C_FLAGS_DEBUG_INIT -g3 -Og -Wall -pedantic -DDEBUG)作用调试模式最大调试信息(-g3)、优化调试(-Og)、全警告(-Wall)、严格标准(-pedantic)、定义 DEBUG 宏。set(CMAKE_C_FLAGS_RELEASE_INIT -O3 -Wall)作用发布模式最大优化(-O3)、开启警告。C 标志set(CMAKE_CXX_FLAGS_DEBUG_INIT -g3 -Og -Wall -pedantic -DDEBUG) set(CMAKE_CXX_FLAGS_RELEASE_INIT -O3 -Wall)和C语言一样。编译# customize linker command set(CMAKE_EXE_LINKER_FLAGS ) set(CMAKE_C_LINK_EXECUTABLE CMAKE_C_COMPILER FLAGS LINK_FLAGS OBJECTS -o TARGET LINK_LIBRARIES) set(CMAKE_CXX_LINK_EXECUTABLE CMAKE_CXX_COMPILER FLAGS LINK_FLAGS OBJECTS -o TARGET LINK_LIBRARIES)占位符默认值来源如何自定义FLAGSCMAKE_C_FLAGSCCMAKE_CXX_FLAGSCset(CMAKE_C_FLAGS -mcpucortex-m4)LINK_FLAGSCMAKE_EXE_LINKER_FLAGSset(CMAKE_EXE_LINKER_FLAGS -Tlink.ld)OBJECTSadd_executable()的源文件列表自动生成无需手动设置TARGETadd_executable(目标名 ...)第一个参数就是目标名LINK_LIBRARIEStarget_link_libraries(目标名 ...)第二个参数开始的所有库这里的FLAGS在调试/发布标志里讲解了。其他的因为不同的stm32取决于其他CMakeLists文件里定义了并且CMAKE_C_LINK_EXECUTABLE和CMAKE_C_LINK_EXECUTABLE也是为主CMakeLists文件做准备。交叉编译Cross-Compiling的核心隔离配置这几个也是CMake的预设机制模式设置值含义实际例子PROGRAM程序NEVER从不在目标系统找find_program(CMAKE_COMMAND)找cmakeLIBRARY库ONLY只在目标系统找find_library(M_LIB m)找libm.aINCLUDE头文件ONLY只在目标系统找find_path(STDIO_H stdio.h)找头文件set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) # 构建工具来自主机CMAKE_FIND_ROOT_PATH这个可以自己设置Linux默认就是/usr/bin但是交叉编译的时候这个路径被偷偷修改为之前编译器的路径了就不是/usr/bin这样就找不到make、cmake、git、python这些构建过程的辅助工具。因此使用never。修改原因是之前指定了交叉编译工具cmake自动修改导致的如果你手动指定CMAKE_FIND_ROOT_PATH为/usr/bin就可以使用only。其他两个同理但是他们两个要的就是修改后的。交叉编译# 找 make 和cmake程序时 # NEVER → 不在 /opt/gcc-arm 里找 → 在主机 /usr/bin 里找 ✅本地编译# 找 make 和cmake程序时 # 在系统默认PATH里找 → /usr/bin/make ✅/opt/gcc-arm/bin/是x86程序 ├── arm-none-eabi-gcc # 目标编译器 ├── arm-none-eabi-ld # 目标链接器 ├── arm-none-eabi-objcopy # 目标工具 └── ...其他ARM工具 不包含是x86程序 ├── cmake # 构建系统生成器 ├── make # 构建执行器 ├── ninja # 替代构建器 └── git # 版本控制
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

深圳住建设局网站公租房怎么注册网自己的网站

在数字化心理健康服务快速发展的今天,如何让AI系统真正理解人类复杂的情感需求,提供专业有效的心理支持?Emotional First Aid Dataset作为当前最大的中文心理咨询对话语料库,为这一技术难题提供了革命性的解决方案。 【免费下载链…

张小明 2026/1/2 2:53:54 网站建设

西安网站开发多少钱网站用户体验分析怎么做

审稿人看摘要的8秒钟决定论文生死?别慌,你的“摘要外挂”已到账好写作AI官方网址:https://www.haoxiezuo.cn/学术界的“8秒定律”:摘要写不好,全文再好也白搞残酷真相:80%的审稿人只看摘要就决定是否继续读…

张小明 2026/1/9 21:52:45 网站建设

集宁网站建设快速做网站的技术

智能旅行革命:Open R1如何重塑你的出行体验 【免费下载链接】open-r1 Fully open reproduction of DeepSeek-R1 项目地址: https://gitcode.com/gh_mirrors/open/open-r1 厌倦了千篇一律的旅游推荐?疲惫于复杂的行程规划?在数字化浪潮…

张小明 2026/1/6 16:11:32 网站建设

做创意礼品定制的网站优秀设计案例作品

com.unity.multiplayer.samples.coop-2.5.0\Assets\Scripts\Gameplay\GameplayObjects\Character\AI 1. 系统概述 AI系统是一个基于状态机的智能体控制系统,主要用于处理游戏中NPC角色的行为逻辑,包括空闲状态、攻击状态等。系统采用了组件化架构,与服务器端角色逻辑紧密集…

张小明 2026/1/3 14:18:09 网站建设

4399谁做的网站wordpress 修改footer

如何精准掌控演讲时间:悬浮计时器完整使用指南 【免费下载链接】ppttimer 一个简易的 PPT 计时器 项目地址: https://gitcode.com/gh_mirrors/pp/ppttimer 还在为演讲超时而焦虑吗?每次站在讲台上,是否都在担心时间失控影响整体表现&a…

张小明 2026/1/4 2:56:07 网站建设

分析网站示例wordpress 打赏js

还在为AI绘画中人物姿势不自然而烦恼吗?OpenPose Editor正是你需要的解决方案!这款革命性的姿势编辑工具将复杂的人体姿态控制变得简单直观,让每个创作者都能轻松驾驭专业级姿势编辑。 【免费下载链接】openpose-editor openpose-editor - 一…

张小明 2026/1/3 16:14:33 网站建设