2013-03-05 73 views
1

我想编译一个C++程序,它在Xcode中工作正常,但在终端中给出错误。Mac OS X给出的架构x86_64找不到ld:symbol(s)

的main.cpp

int main(int argc, const char * argv[]) 
{ 
    Example* example =new Example(); 
    example->show(); 
} 

example.h文件

class Example { 
public: 

    void show(); 
}; 

example.cpp

void Example::show() { 

    std::cout<<"Hello World"<<std::endl; 
} 

的错误,我得到

"Example::show()", referenced from: 
     _main in cckpIa3V.o 
ld: symbol(s) not found for architecture x86_64 
collect2: ld returned 1 exit status 

我使用G ++

g++ -o test main.cpp 
+1

“但在终端出现错误”究竟是什么意思?你是否试图在命令行上编译?如果是这样,请显示您的命令行! – trojanfoe 2013-03-05 15:07:34

+1

g ++ -o test main.cpp – Kathick 2013-03-05 15:08:55

回答

2

您还没有example.o链接编译。你不显示你的命令行/ Makefile文件,所以这是(大约)你需要输入什么:

$ g++ -o example main.cpp example.cpp 

这将编译源文件链接到一个可执行叫example

+0

如何编译如果我在很多不同目录下有很多类文件 – Kathick 2013-03-05 15:12:31

+0

创建一个Makefile是最可靠的方法,那么你可以简单地输入'make all'或者其他一些。但基本上你可以像这样引用源文件:'$ g ++ -o例子src/file1.cpp ../othersrc/file2.cpp/tmp/file3.cpp' – trojanfoe 2013-03-05 15:14:32

相关问题