关于El Capitan错误的xCode 7.01上的C ++ - >架构x86_64的未定义符号:

时间:2015-10-22 03:35:13

标签: c++ xcode macos osx-elcapitan

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文件。

1 个答案:

答案 0 :(得分:2)

  

架构x86_64的未定义符号

此错误消息相当具有误导性,它真正告诉您的是编译器已经看到 makeHero(std :: string,int)的函数声明(符号),但无法找到它的实施。

通过在头文件中声明一个函数,而不在头文件或cpp中实现函数体,错误很容易重现。

要解决此问题,请确保在项目中实现该功能的正文。