news 2026/6/23 11:26:00

Mac OS 15.5下使用gcc15.2的Modules模块功能出现无法链接的解决方法

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Mac OS 15.5下使用gcc15.2的Modules模块功能出现无法链接的解决方法

在Mac OS 15.5系统中,最近想用C++23,试了试gcc15.2,发现出现无法链接模块功能:

首先下一个最简单的Helloworld.cpp:

import std;

int main()
{
std::println("Hello,world!");
return 0;
}

使用gcc15.2编译:

g++-15 -std=c++23 -fmodules helloworld.cpp

出现链接不到模块的错误:

Undefined symbols for architecture arm64:
"initializer for module std", referenced from:
__static_initialization_and_destruction_0() in ccEgD1TM.o
ld: symbol(s) not found for architecture arm64
collect2: error: ld returned 1 exit status

参考了网上一位大神的文章介绍:https://download.csdn.net/blog/column/11938572/149222276

使用这个命令重新编译:g++ -std=c++23 -fmodules -fsearch-include-path bits/std.cc helloworld.cpp

bit/std.cc是std模块所在位置,我们需要找出gcc15.2在Mac OS中安装位置,使用这个命令可以找到:/* by yours.tools - online tools website : yours.tools/zh/post.html */ g++-15 -print-search-dirs

gcc15.2安装位置:

install: /opt/homebrew/Cellar/gcc/15.2.0/bin/../lib/gcc/current/gcc/aarch64-apple-darwin24/15/

programs: =/opt/homebrew/Cellar/gcc/15.2.0/bin/../libexec/gcc/aarch64-apple-darwin24/15/:/opt/homebrew/Cellar/gcc/15.2.0/bin/../libexec/gcc/:/opt/homebrew/Cellar/gcc/15.2.0/bin/../lib/gcc/current/gcc/aarch64-apple-darwin24/15/../../../../../../aarch64-apple-darwin24/bin/aarch64-apple-darwin24/15/:/opt/homebrew/Cellar/gcc/15.2.0/bin/../lib/gcc/current/gcc/aarch64-apple-darwin24/15/../../../../../../aarch64-apple-darwin24/bin/

libraries: =/opt/homebrew/Cellar/gcc/15.2.0/bin/../lib/gcc/current/gcc/aarch64-apple-darwin24/15/:/opt/homebrew/Cellar/gcc/15.2.0/bin/../lib/gcc/current/gcc/:/opt/homebrew/Cellar/gcc/15.2.0/bin/../lib/gcc/current/gcc/aarch64-apple-darwin24/15/../../../../../../aarch64-apple-darwin24/lib/aarch64-apple-darwin24/15/:/opt/homebrew/Cellar/gcc/15.2.0/bin/../lib/gcc/current/gcc/aarch64-apple-darwin24/15/../../../../../../aarch64-apple-darwin24/lib/:/opt/homebrew/Cellar/gcc/15.2.0/bin/../lib/gcc/current/gcc/aarch64-apple-darwin24/15/../../../aarch64-apple-darwin24/15/:/opt/homebrew/Cellar/gcc/15.2.0/bin/../lib/gcc/current/gcc/aarch64-apple-darwin24/15/../../../

可以看到std.cc模块位置是:/opt/homebrew/Cellar/gcc/15.2.0/include/c++/15/bits/std.cc

然后替换一下刚才的编译命令中std.cc的位置即可:

g++-15 -std=c++23 -fmodules -fsearch-include-path /opt/homebrew/Cellar/gcc/15.2.0/include/c++/15/bits/std.cc helloworld.cpp

./a.out
Hello,world!

大功告成,希望C++23成熟以后,不用自己手动指定模块位置吧。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/20 20:29:09

基于单片机的智能录音笔的设计(源码+万字报告+讲解)(支持资料、图片参考_相关定制)

、摘 要 随着电子技术的快速发展,数字记录笔越来越受欢迎。本文对记录笔的不同设计方案进行了比较和分析,并选择STC90C52微控制器设计了一种数字记录笔。本文提出了一种基于STC90C52微控制器和ISD4004语音芯片的多功能录音笔解决方案。首先,…

作者头像 李华
网站建设 2026/6/10 18:02:05

美版“美团”DoorDash:如何通过功能测试提高代码覆盖率的

在这篇文章中,我们介绍了一种功能测试方法,该方法不需要任何手动设置,并且可以像单元测试一样在本地或在持续集成 (CI) 管道中运行。具体来说,该方法执行以下操作: 有助于在本地开发过程中捕获和重现更多的错误&#…

作者头像 李华
网站建设 2026/6/9 23:17:07

AI智能实体侦测服务节省人力:批量处理万条文本部署案例

AI智能实体侦测服务节省人力:批量处理万条文本部署案例 1. 引言:AI 智能实体侦测服务的业务价值 在信息爆炸的时代,企业每天需要处理海量非结构化文本数据——新闻稿、社交媒体评论、客户反馈、合同文档等。传统的人工标注方式不仅耗时耗力…

作者头像 李华
网站建设 2026/6/8 17:48:57

Java—学生信息管理系统(简单、详细)_学生管理系统java,零基础入门到精通,收藏这篇就够了

文章目录 一、主界面展示二、学生类三、系统功能方法 3.1 main()方法3.2 添加学生信息3.3 删除学生信息3.4 修改学生信息3.5 查看所有学生信息 四、完整代码 4.1 Student .Java4.2 StudentManger.Java 前言:本案例在实现时使用了Java语言中的ArrayList集合来储存数…

作者头像 李华
网站建设 2026/6/10 13:12:20

Qwen2.5自动化测试方案:按次付费更经济

Qwen2.5自动化测试方案:按次付费更经济 引言 作为一名QA工程师,你是否经常遇到这样的困扰:每天只需要1-2小时使用AI生成测试用例,却不得不购买包月GPU资源,导致大部分时间资源闲置?这种传统付费方式不仅造…

作者头像 李华
网站建设 2026/6/15 13:55:31

HY-MT1.5-1.8B部署实战:嵌入式设备移植指南

HY-MT1.5-1.8B部署实战:嵌入式设备移植指南 随着边缘计算与本地化AI推理需求的快速增长,轻量级大模型在翻译场景中的部署成为关键突破口。腾讯开源的混元翻译模型HY-MT1.5系列,凭借其高效的多语言支持和优化的推理性能,为开发者提…

作者头像 李华