2010-10-03 64 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

相关问题