2013-03-05 76 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

相關問題