1
我寫了一類名爲UserScore用於建築x86_64的錯誤未定義的符號:C++編譯
//header
using namespace std;
class UserScore{
public:
UserScore(const int &user_id, const int &rating);
private:
int _user_id;
int _rating;
};
//cpp
#include "UserScore.h"
UserScore::UserScore (const int &user_id, const int &rating):
_user_id(user_id),
_rating(rating)
{
}
編譯命令是:
g++ src/UserScore.cpp -o obj/UserScore.o
但是,爲什麼這個簡單的事情不會編譯?
的錯誤是:
Undefined symbols for architecture x86_64:
"_main", referenced from:
start in crt1.10.6.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status
我想你需要使用'-c'選項來停止它試圖鏈接到一個完整的可執行文件。它不能做,因爲你必須有一個'main()'。你不這樣做。 – BoBTFish
是的,它的工作原理。非常感謝..... –
沒問題。此外,你可能已經放棄了節省空間,但你應該使用頭衛隊。 '使用名稱空間標準'通常被認爲是不好的做法,特別是在頭文件中。請參閱http://www.parashift.com/c++-faq/using-namespace-std.html – BoBTFish