Undefined symbols for architecture x86_64:
"makeHero(std::string, int)", referenced from:
makeCard() in main.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
当我尝试在xCode上编译代码时,这是我遇到的错误。我环顾四周,将架构设置更改为Universal,并制作了c ++ std库,libstdc ++,这些都是我在这里找到的答案。仍然没有:/
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string>
using namespace std;
我的main.cpp文件的开头是什么造成的?我将stdlib.h和stdio.h改为没有.h而且我找不到stdlib文件。
答案 0 :(得分:2)
架构x86_64的未定义符号
此错误消息相当具有误导性,它真正告诉您的是编译器已经看到 makeHero(std :: string,int)的函数声明(符号),但无法找到它的实施。
通过在头文件中声明一个函数,而不在头文件或cpp中实现函数体,错误很容易重现。
要解决此问题,请确保在项目中实现该功能的正文。