网站做聚合页面方案如何写重庆建设厅网站公示公告栏

张小明 2025/12/31 13:14:47
网站做聚合页面方案如何写,重庆建设厅网站公示公告栏,网站公司做的网站经常打不开,百度网站收录提交入口全攻略这个写了自动配置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进行投诉反馈,一经查实,立即删除!

建设部网站上标准合同pc网站建设需要提供哪些资料

随着中国经济的转型升级和产业结构的不断优化,行业间的薪资水平差异日益明显;了解2025年高薪行业的分布薪资水平的同时,可以预判未来发展趋势,对于大学生求职者、社会求职者以及企业人力资源规划都具有重要的参考价值。 本文通过收…

张小明 2025/12/29 0:30:19 网站建设

济宁广告公司网站建设阿里巴巴官网下载安装

还在为MobaXterm专业版的功能限制而烦恼吗?MobaXterm密钥生成工具正是为你量身打造的解决方案!这款强大的Python工具能够快速生成有效的许可证文件,让你免费解锁MobaXterm的全部高级功能,体验前所未有的终端操作便利。 【免费下载…

张小明 2025/12/29 0:29:05 网站建设

网站开通微信支付收费属于您自己的网站建设

第五章:林心 地球时间,第三日 15:48。 林骁、赵小雅、刘阳、张锐站在地狱之门基地主厅的金属地板上。 灰工装技术员左臂的红五星在顶灯下泛着微光:“同步舱已预热,直接进。” 他们走向西侧通道,脚步比前两日更轻&#…

张小明 2025/12/31 10:49:47 网站建设

网站建设排名优化软件推广

第一章:Open-AutoGLM 异地设备管理Open-AutoGLM 是一款面向分布式环境的智能设备管理框架,专为跨地域、多节点场景下的自动化控制与状态同步设计。其核心能力在于通过轻量级通信协议实现对远程设备的实时监控、指令下发与配置更新,适用于边缘…

张小明 2025/12/29 0:27:56 网站建设

家居网站建设策划整页型网站

SQLite Viewer:如何在浏览器中免费查看SQLite数据库? 【免费下载链接】sqlite-viewer View SQLite file online 项目地址: https://gitcode.com/gh_mirrors/sq/sqlite-viewer SQLite Viewer是一款基于Web的SQLite数据库查看工具,无需安…

张小明 2025/12/29 0:27:22 网站建设

做一个网站和手机软件多少钱个体工商网上年检

MQTT Explorer作为一款功能全面的MQTT客户端工具,能够为物联网开发者和系统管理员提供结构化的主题概览和管理能力。本文将分享五个实用技巧,帮助你在实际项目中充分发挥这款工具的价值。 【免费下载链接】MQTT-Explorer An all-round MQTT client that …

张小明 2025/12/29 0:26:44 网站建设