You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C++新手求助:编译出现重复_main符号链接错误

解决C++链接错误:duplicate symbol _main

嘿,别担心,刚接触C++遇到这类链接错误太常见啦,我来帮你理清楚问题所在~

首先看你给出的错误信息:

duplicate symbol _main in: obj/Debug/main.o obj/Debug/test03.o
ld: 1 duplicate symbol for architecture x86_64
clang: error: 链接命令失败,退出码为1(使用-v查看调用详情)

这个错误的核心原因是你的项目里有两个源文件都定义了main()函数——C++程序规定只能有一个main函数作为程序的入口点,链接器在合并编译后的目标文件(.o文件)时,发现main.o(来自你的main.cpp)和test03.o(来自test03.cpp)里都有main函数,所以报错了。

解决步骤:

  • 第一步:打开你的test03.cpp文件,检查里面是不是也写了一个int main() { ... }的函数。如果是的话,要么把这个多余的main函数删掉,要么把它重命名成别的名字(比如int test_main() { ... })。
  • 第二步:确认你的项目构建配置,是不是不小心把多个包含main函数的源文件都加入到了编译列表里。确保只有一个带有main函数的源文件参与构建。

你提供的main.cpp代码本身是没问题的:

#include <iostream> 
using namespace std; 
int main() { 
    cout << "hi" << endl; 
    return 0; 
}

补充说明:

构建命令里的g++ -o bin/Debug/1600 obj/Debug/main.o obj/Debug/src/test.o obj/Debug/test03.o是链接器把这三个目标文件合并成可执行文件,正是在这一步发现了重复的main符号。

内容的提问来源于stack exchange,提问作者user9676458363

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 03:43:33