news 2026/5/1 4:49:12

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/5/1 4:47:24

电商评论信息抽取:AI智能实体侦测服务应用场景实战

电商评论信息抽取:AI智能实体侦测服务应用场景实战 1. 引言:从非结构化文本中挖掘商业价值 在电商平台的日常运营中,每天都会产生海量的用户评论数据。这些评论包含消费者对商品、服务、物流等多维度的真实反馈,是企业洞察用户需…

作者头像 李华
网站建设 2026/5/1 4:48:10

Qwen3-VL模型压测指南:如何用最低成本完成性能测试

Qwen3-VL模型压测指南:如何用最低成本完成性能测试 引言:为什么需要低成本压测方案? 作为一款支持视觉理解的多模态大模型,Qwen3-VL在图像描述、视觉问答等场景表现出色。但当企业或开发者需要将其投入实际应用时,一…

作者头像 李华
网站建设 2026/4/28 5:16:53

AI智能实体侦测服务前端样式可改吗?WebUI定制化部署指南

AI智能实体侦测服务前端样式可改吗?WebUI定制化部署指南 1. 引言:AI 智能实体侦测服务的实用价值与定制需求 随着自然语言处理(NLP)技术在信息抽取领域的深入应用,命名实体识别(Named Entity Recognition…

作者头像 李华
网站建设 2026/5/1 4:45:00

测试工程师软技能培养:从技术专家到团队核心的蜕变之路

在当今快速迭代的软件开发环境中,测试工程师的角色已超越单纯的缺陷发现者。他们需与开发、产品团队紧密协作,确保软件质量。然而,技术技能(硬技能)虽重要,软技能的缺失却可能成为职业瓶颈。软技能——如沟…

作者头像 李华
网站建设 2026/4/25 23:17:59

AI智能实体侦测服务金融风控:交易记录实体分析

AI智能实体侦测服务金融风控:交易记录实体分析 1. 引言:AI 智能实体侦测服务在金融风控中的价值 随着金融业务的数字化进程加速,海量非结构化文本数据(如交易日志、客户沟通记录、反洗钱报告)不断积累。传统人工审核…

作者头像 李华