2010-10-03 63 views
2

我想在mac os上開發C++程序,並且我已經用一堆框架安裝了Xcode。在沒有Xcode IDE的情況下開發C++

但是我想寫沒有Xcode的代碼IDE但只寫我自己的makefile並直接編譯/鏈接到gcc(附帶Xcode)。

乘坐OpenGL圖像作爲示例

我試圖與命令編譯它

GCC -I/USR /包含/ -I /開發商/軟件開發工具包/ MacOSX10.6.sdk/System/Library/Frameworks/GLUT.framework/Headers/ -I/Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/OpenGL.framework/Headers -L/usr/lib -L ​​/ usr/X11/lib/-L/Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/OpenGL.framework/Libraries/ -lGL -lGLU -lGLUTt main.cpp

的gcc -I/usr/include目錄/ -L/usr/lib目錄 -framework的OpenGL -framework GLUT -lm的main.cpp

但他們結束了與鏈接錯誤

未定義的符號:
「的std :: basic_ostream

::運算< <(長)」,從引用: 重塑(INT,INT)在ccKBRSF9.o ccKBRSF9.o 顯示() 「___gxx_personality_v0」,從引用 : 在ccKBRSF9 ___ gxx_personality_v0 $ non_lazy_ptr的.o (也許你的意思是:___ gxx_personality_v0 $ non_lazy_ptr) 「的std ::的ios_base ::初始化::〜的init()」, 引用自: ___tcf_0在ccKBRSF9.o「的std :: basic_string的, 的std ::分配器 :: operator [](unsigned long)const「,引用來自: std :: __ verify_grouping(char const *,unsigned long, std :: basic_string, 的std ::分配器>常量&)在 ccKBRSF9.o 的std :: __ verify_grouping(字符常量*,無符號長, 的std :: basic_string的, 的std ::分配器>常量&)在 ccKBRSF9.o STD: :__ verify_grouping(字符常量*,無符號長, 的std :: basic_string的, 的std ::分配器>常量&)在 ccKBRSF9.o「的std :: basic_ostream> & 的std ::操作者< < (標準:: basic_ostream> &,char const *)「 ,引用自: ccKBRSF9.o中的鍵盤(無符號字符,整數,整數) ccKBRSF9.o中的鍵盤(無符號字符,整數,整數) ccKBRSF9.o中的鍵盤(無符號字符,整數,整數) reshape ,int)in ccKBRSF9.o display()in ccKBRSF9。○ 「的std ::的ios_base ::初始化::初始化()」,從 引用:在ccKBRSF9.o __static_initialization_and_destruction_0(INT,INT)
「的std :: basic_string的, 的std ::分配器> ::尺寸()常量」, 從引用: 的std :: __ verify_grouping(字符常量*,無符號長, 的std :: basic_string的, 的std ::分配器>常量&)在 ccKBRSF9.o 「的std :: COUT」,引用 從: __ZSt4cout $ non_lazy_ptr in ccKBRSF9.o (也許你的意思是:__ZSt4cout $ non_lazy_ptr)ld:symbol(s)not found collect2:ld返回1退出 狀態

我錯過了什麼嗎?

+0

的可能的複製[?是什麼克++和gcc之間的差(https://stackoverflow.com/questions/172587/what-is-the-difference-between-g-and-gcc ) – 2017-12-05 10:54:32

回答

5

使用g++來編譯C++。這是GCC的C++前端。例如:

g++ -I/usr/include/ -L/usr/lib -framework OpenGL -framework GLUT -lm main.cpp 
+0

你是對的!但爲什麼「gcc」不起作用? – elgcom 2010-10-03 17:43:34

+1

因爲gcc是一個C編譯器,並且它不會在C++標準庫中正確鏈接。 – 2010-10-03 17:50:05

+0

@elgcom:這與所有平臺上的GCC都是一樣的。 – Potatoswatter 2010-10-03 18:27:44

相關問題