为什么这个C ++链接不起作用? (OSX Mavericks)

时间:2014-07-23 01:30:55

标签: c++ macos

我正在学习C ++。我试图链接单独的文件,试图在一个单独的文件中创建一个类。

当我构建并运行程序时,我收到以下错误消息:

架构x86_64的未定义符号:   “Sally :: printCrap()”,引自:       _main在Main-8bfa94.o中   “Sally :: Sally()”,引自:       _main在Main-8bfa94.o中 ld:找不到架构x86_64的符号 clang:错误:链接器命令失败,退出代码为1(使用-v查看调用) [完成时间为0.3秒,退出代码为1]

这是我的代码:

Main.cpp的

#include <iostream>
#include <string>

#include "Sally.h"

using namespace std;

int main()
{
    Sally sallyObject;
    Sally *sallyPointer = &sallyObject;

    sallyObject.printCrap();
    sallyPointer->printCrap();
}

Sally.h

#ifndef SALLY_H
#define SALLY_H

class Sally
{
public:
    Sally();
    void printCrap();
};

#endif

Sally.cpp

#include "Sally.h"
#include <iostream>

using namespace std;

Sally::Sally()
{

}

void Sally::printCrap(){
    cout << "Crap \n";
};

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:3)

只需启动OS X的终端应用程序,然后输入

cd“/ Users / BEASTMACHIENEjr / Desktop / C ++ Files”转到该文件夹​​,然后输入g ++ Main.cpp Sally.cpp。这将生成一个名为a.out的文件,然后您可以通过键入./a.out

来启动它

PS:如果您使用Sublime Text,我建议您创建一个Makefile,以便您可以编译跨多个源文件的代码。