尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
共享库文件查看内部
CMAKE .so一、查看 CMake 最终生效的编译选项两种方案方案1打印目标所有 compile options推荐精准看target_compile_options在 CMake 脚本末尾添加这段代码替换stixelworld_shared/${PROJECT_NAME}为你的目标名function(print_target_compile_options TARGET) get_target_property(opts ${TARGET} COMPILE_OPTIONS) get_target_property(pub_opts ${TARGET} INTERFACE_COMPILE_OPTIONS) message(STATUS ) message(STATUS [${TARGET}] PRIVATE COMPILE_OPTIONS: ${opts}) message(STATUS [${TARGET}] INTERFACE/PUBLIC COMPILE_OPTIONS: ${pub_opts}) message(STATUS ) endfunction() # 调用填入你的目标 print_target_compile_options(stixelworld_shared) print_target_compile_options(stixelworld) print_target_compile_options(GODService)区分target_compile_options(tgt PRIVATE xxx)→ COMPILE_OPTIONStarget_compile_options(tgt PUBLIC xxx)→ 同时进入 COMPILE_OPTIONS INTERFACE_COMPILE_OPTIONStarget_compile_options(tgt INTERFACE xxx)→ INTERFACE_COMPILE_OPTIONS方案2查看完整最终传给编译器的命令最真实方式A利用CMAKE_EXPORT_COMPILE_COMMANDSON你已经开启构建目录生成compile_commands.json直接打开文件搜索目标源码main.cpp / Stixel_Detect.cpp可以看到完整 g/aarch64-none-linux-gnu-g 命令行所有-std -O3 -g -Wall全部打印。方式Bmake 输出完整编译指令make VERBOSE1执行后每一条编译命令完整打印aarch64-none-linux-gnu-g -stdc14 -Wall -O3 -g -c src/main.cpp ...✅ 最直观直接对比so库编译时使用什么-std可执行文件GODService编译使用什么-std快速定位ABI不匹配之前undefined reference核心嫌疑点二、针对你工程的关键问题提醒compile_options 陷阱陷阱1全局 CMAKE_CXX_FLAGS 和 target_compile_options 叠加冲突# GODService set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -stdc14 -g -Wall -O3 ) #全局flag set(CMAKE_CXX_STANDARD 17) # stixelworld_shared target_compile_options(stixelworld_shared PUBLIC -stdc14 -Wall -O3)CMAKE_CXX_STANDARD** 会自动添加-stdc17到编译器参数**同时又手动传入-stdc14GCC行为后面出现的 -std 覆盖前面顺序不确定极易造成时而c14、时而c17→ 符号名 mangling 不一致 → undefined reference✅ 规范写法二选一不要混用推荐只用 CMAKE_CXX_STANDARD禁止手动写-stdxxset(CMAKE_CXX_STANDARD 14) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) # target_compile_options 不再添加 -stdxxx target_compile_options(stixelworld_shared PUBLIC -Wall -O3)陷阱2PUBLIC compile_options 传染依赖方target_compile_options(stixelworld_shared PUBLIC -stdc14)所有链接stixelworld_shared的目标stixelworld可执行文件会自动继承-stdc14。但是跨工程GODService 是独立工程不是同一个cmakePUBLIC 完全无效 GODService 不会继承 stixelworld_shared 的任何 compile_options必须自身单独配置标准。三、直接给你加到现有CMake的完整示例stixelworld CMake 修改片段# 删除 target_compile_options 内的 -stdc14 target_compile_options(stixelworld_shared PUBLIC -Wall -O3) # 打印编译标记 function(print_target_compile_options TARGET) get_target_property(opts ${TARGET} COMPILE_OPTIONS) get_target_property(pub_opts ${TARGET} INTERFACE_COMPILE_OPTIONS) message(STATUS \n Target: ${TARGET} ) message(STATUS PRIVATE opts: ${opts}) message(STATUS INTERFACE opts: ${pub_opts}) endfunction() print_target_compile_options(stixelworld_shared) print_target_compile_options(stixelworld)GODService CMake 修改片段# 删除 set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD 14) set(CMAKE_CXX_STANDARD_REQUIRED ON) # 删除全局 CMAKE_CXX_FLAGS 里面的 -stdc14 set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -g -Wall -O3 ) # 增加打印 function(print_target_compile_options TARGET) get_target_property(opts ${TARGET} COMPILE_OPTIONS) get_target_property(pub_opts ${TARGET} INTERFACE_COMPILE_OPTIONS) message(STATUS \n Target: ${TARGET} ) message(STATUS PRIVATE opts: ${opts}) message(STATUS INTERFACE opts: ${pub_opts}) endfunction() print_target_compile_options(GODService)四、快速调试流程建议两个工程全部移除所有手写-stdcxx使用CMAKE_CXX_STANDARD14统一标准make VERBOSE1分别编译 stixelworldaarch64、GODService对比两条编译命令中的-std参数必须完全一致确认交叉编译器是同一个aarch64-none-linux-gnu-g 12.2.1如果你需要我可以直接帮你完整修正两份CMake脚本消除std冲突隐患。
RELATED

相关推荐

龙蜥社区战略升级:从开源操作系统到AI原生生态构建

龙蜥社区战略升级:从开源操作系统到AI原生生态构建

1. 从“捐赠”到“升级”:一次社区战略的深度解构 最近,龙蜥社区宣布将自身捐赠给开放原子开源基金会,并全面升级为“AI 原生操作系统社区”。这个消息在技术圈里激起了不小的水花,很多人第一反应可能是:“哦&#xff…

📅 2026/9/8 22:42:38
3分钟搞定Office安装!LKY_OfficeTools终极解决方案

3分钟搞定Office安装!LKY_OfficeTools终极解决方案

3分钟搞定Office安装!LKY_OfficeTools终极解决方案 【免费下载链接】LKY_OfficeTools 一键自动化 下载、安装、激活 Office 的利器。 项目地址: https://gitcode.com/GitHub_Trending/lk/LKY_OfficeTools 还在为Office安装的繁琐步骤而头疼吗?每次…

📅 2026/10/9 6:53:08
驾驶员行为检测数据集 | 22600张YOLO智能驾驶数据集

驾驶员行为检测数据集 | 22600张YOLO智能驾驶数据集

驾驶员行为检测数据集 | 22600张YOLO智能驾驶数据集 适用于疲劳驾驶预警、分心行为识别与目标检测研究 一、数据集概述 本数据集面向计算机视觉目标检测任务,专为驾驶员行车状态识别模型训练、验证与测试设计,共包含约22600张高质量标注图像&#xff0…

📅 2026/10/6 1:36:21
MORE NEWS

更多资讯

📰

二自由度横摆动力学与自适应参数MPC路径跟踪控制

做自动驾驶路径跟踪的人,基本都会遇到一个尴尬场景:同一套MPC参数,在低速园区绕个圆道又稳又准,车速一旦提到80甚至120,过连续弯道就明显开始抖,要么横向误差变大,要么方向盘来回修正。这个问题…

📰

Claw类AI工具接入第三方大模型API完整指南

最近后台经常有人问:手头好几个叫 Claw 的 AI 工具,有的是聊天助手,有的是代码代理,有的是自动化工作流,但默认模型要么不够用,要么收费太贵,要么我手里已经有一个更好用、更便宜的第三方大模型…

📰

Llama-Guard-3-1B-chat-mlx-8bit 架构原理:LlamaForCausalLM、GQA 注意力与 RoPE 位置编码深度剖析(新手完整指南)

人工智能大模型基础模型模型量化本地部署内容安全 【免费下载链接】Llama-Guard-3-1B-chat-mlx-8bit 项目地址: https://ai.gitcode.com/hf_mirrors/mlx-community/Llama-Guard-3-1B-chat-mlx-8bit 点击查看 免费下载 Llama-Guard-3-1B-chat-mlx-8bit 是一款面向 A…

📰

图表设计实战:从信息架构到代码化制图的核心原则与工具选型

图表设计这件事,我前前后后折腾了三四年。做过的图没有一千也有八百,从最初拿拖拽工具一朵一朵画箭头,到后来用文本描述直接生成整套架构图,中间经历了很多次“改图改到怀疑人生”的瞬间。这个项目标题“diagram-design”看着简单…

📰

Dify工作流实现双模型分栏流式对比:从原理到实践

最开始我对比两个模型的回答质量,用的还是最笨的办法:开两个浏览器标签页,把同一个问题分别粘进去,再左右来回切。遇到长回答还得自己对对齐位置,效率低到让人怀疑人生。直到我把这套动作搬进 Dify,用可视化…

📰

损失函数全解析:从交叉熵到Focal Loss的选型与实践指南

如果你训练过哪怕三五个深度学习模型,大概率遇到过这样的深夜:loss 曲线平平淡淡像条直线,模型怎么都不肯学;或者 loss 降得飞快,可验证集上的指标纹丝不动;再或者训练到一半 loss 直接变成 NaN&#xff0c…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬