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
相关产品推荐
相关产品推荐

