2012-06-03 54 views
1
找到C++庫

我寫了一個簡單的C++程序,TEST.CPP:無法在UNIX

#include <iostream> 
#include <string> 

using namespace std; 

int main() { 
    string s; 
    cin >> s; 
    cout << s << endl; 
    return 0; 
} 

爲什麼捉迷藏gcc test.cpp -o mytest給我這些錯誤,多?

Undefined symbols for architecture x86_64: 
    "std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string()", referenced from: 
     _main in cc8rGYVq.o 
    "std::cin", referenced from: 
     _main in cc8rGYVq.o 
+0

你使用的是什麼Unix系統? –

+0

Darwin -------- –

回答

7

不要使用命名gcc編譯和鏈接C++程序可執行文件;您必須使用g++。它不僅選擇了合適的編譯器選項,還與您的語言的正確庫鏈接(這是您在這裏遇到的問題)。

+1

那麼,你*可以使用gcc命令,但是你必須明確地將C++運行時與-lstdC++連接起來。 – emsr

1

「gcc」命令編譯C代碼,以便編譯C++代碼你應該使用「g ++」

+2

這是一個有點蹩腳的,因爲'gcc'的目的是爲底層工具鏈二進制文件的前端,或驅動程序。它*應該*認識到它將通過查看文件擴展名('.cc','.cpp','.cxx'等)來編譯C++源代碼。它可以用於其他語言,爲什麼它不能處理C/C++問題呢? :P – SasQ