news 2026/4/18 6:54:54

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/4/18 2:08:14

静止无功补偿装置的设计与仿真(源码+万字报告+讲解)(支持资料、图片参考_相关定制)

静止无功补偿装置的设计与仿真 摘要 随着科技的发展,电网中非线性设备的大量应用,引起网侧电压和网侧电流之间产生的相位差增加,造成电网中原有无功补偿容量相对不足。传统的无功补偿技术主要采用同步调相机或电容投切来完成,存在…

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

基于eNSP的校园网络规划设计与实施(源码+万字报告+讲解)(支持资料、图片参考_相关定制)

基于eNSP的校园网络规划设计与实施 目录 基于eNSP的校园网络的设计与仿真 1 摘要 2 Abstract. 3 引言 4 1.1 研究背景 4 1.2 国内外现状 4 1.3 研究的目的和意义 5校园现状需求分析及组网架构 6 2.1 校园网现状 6 2.2 需求分析 6 2.3 解决方案 7 2.4 三层组网架构 8技术介绍及设…

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

AI智能实体侦测服务部署进阶:高可用架构设计

AI智能实体侦测服务部署进阶:高可用架构设计 1. 引言:从单体服务到高可用系统的演进需求 1.1 业务场景与挑战 随着自然语言处理技术在信息抽取领域的广泛应用,AI 智能实体侦测服务已成为新闻聚合、舆情监控、知识图谱构建等系统的核心组件…

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

扑翼机构动态展示设计

2 方案分析 2.1. 工作原理分析 (1) 此次设计的扑翼机根据昆虫的翅膀进行的仿生设计,通常昆虫的翅膀有四片,围绕躯干作上下的摆动,向下摆动时下侧翅膀展开,上侧翅膀向上折叠成V字形,下侧翅膀向下折叠的V字形[1]。由于上…

作者头像 李华
网站建设 2026/4/18 1:29:36

RaNER模型压缩技术应用:AI智能侦测服务内存占用优化

RaNER模型压缩技术应用:AI智能侦测服务内存占用优化 1. 背景与挑战:AI 智能实体侦测服务的性能瓶颈 随着自然语言处理(NLP)技术在信息抽取领域的广泛应用,命名实体识别(Named Entity Recognition, NER&am…

作者头像 李华
网站建设 2026/4/17 20:16:51

Qwen2.5代码生成实测:云端GPU 2小时搞定,成本3块钱

Qwen2.5代码生成实测:云端GPU 2小时搞定,成本3块钱 引言 作为创业团队的CTO,你是否经常面临这样的困境:需要快速验证一个新技术的实际效果,但公司没有GPU服务器,租用云主机包月动辄2000元,而项…

作者头像 李华