我正在学习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";
};
非常感谢任何帮助!
答案 0 :(得分:3)
只需启动OS X的终端应用程序,然后输入
cd“/ Users / BEASTMACHIENEjr / Desktop / C ++ Files”转到该文件夹,然后输入g ++ Main.cpp Sally.cpp。这将生成一个名为a.out的文件,然后您可以通过键入./a.out
来启动它 PS:如果您使用Sublime Text
,我建议您创建一个Makefile
,以便您可以编译跨多个源文件的代码。