news 2026/3/8 17:36:05

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/3/4 13:13:17

基于深度学习的入侵检测系统设计 与实现(源码+万字报告+讲解)(支持资料、图片参考_相关定制)

摘要 进入21世纪以来,信息和网络技术飞速发展,互联网规模不断扩大,网络的影响已经渗透到社会生活的每一个角落。黑客在政治、经济或军事利益的驱使下,对计算机和网络基础设施,特别是各官方机构的网站发动了越来越严重和…

作者头像 李华
网站建设 2026/3/4 18:22:12

国内节假日大数据出行推荐算法及系统(源码+万字报告+讲解)(支持资料、图片参考_相关定制)

国内节假日大数据出行推荐算法及系统 摘 要 随着社会的发展和人民生活水平的提高,国内节假日出行旅游成为一种新兴的生活方式。每个人都可以自发旅行,大众旅游时代已经到来。传统国内节假日旅游模式存在许多问题,如严重的信息孤岛、无法共享…

作者头像 李华
网站建设 2026/2/27 23:33:44

增加0.1nF电筒改进测量效果

增加补偿电容的效果简 介: 本文通过实验验证了正交电感LC谐振回路中补偿电容的作用。在原有1nF谐振电容基础上并联0.1nF小电容后,测试结果显示:传感器灵敏度提升约2倍,两路信号相关数据噪声显著减小,角度计算稳定性明显…

作者头像 李华
网站建设 2026/2/28 23:40:25

9款免费AI论文工具揭秘:效率飙升300%,告别熬夜搞定毕业论文

开头:90%的学生都不知道的论文写作“黑科技”,让熬夜成为历史 你是否经历过这些绝望时刻? 对着空白文档发呆3小时,连摘要都写不出一句通顺的话;为了降重把“研究表明”改成“笔者发现”,结果查重率还是飙…

作者头像 李华
网站建设 2026/2/27 22:21:21

RaNER与BERT-NER对比评测:中文实体识别准确率实测报告

RaNER与BERT-NER对比评测:中文实体识别准确率实测报告 1. 选型背景与评测目标 在自然语言处理(NLP)任务中,命名实体识别(Named Entity Recognition, NER) 是信息抽取的核心环节。尤其在中文场景下&#xf…

作者头像 李华