在没有Xcode IDE的情况下开发c ++
我想在mac os上开发c ++程序,并且我已经用一堆框架安装了Xcode。
不过,我想编写没有Xcode IDE的代码,但只需编写自己的makefile并直接编译/链接到gcc(随Xcode一起提供)。
以一个opengl程序为例
我试图用命令编译它
gcc -I / usr / include / -I / Developer / SDKs / 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
:: operator <<(long)“,引用自:ccKBRSF9.o中的reshape(int,int),ccKBRSF9.o中的display(),”___gxx_personality_v0“,引用自:___ gxx_personality_v0 $ cc中的non_lazy_ptr(也许你的意思是:___gxx_personality_v0 $ non_lazy_ptr)“std :: ios_base :: Init ::〜Init()”,引用自:___tcf_0 ccKBRSF9.o“std :: basic_string,std :: allocator :: operator [](unsigned long)const”,引用从:std :: __ verify_grouping(char const *,unsigned long,std :: basic_string,std :: std :: __ verify_grouping(char const *,unsigned long,std :: basic_string,std :: allocator> const&)在ccKBRSF9.o中在ccKBRSF9.o“std :: basic_ostream>&std :: operator <<((const const)* const char * (unsigned char,int,int)在ccKBRSF9.o键盘(无符号字符,int,int)中的引用(unsigned char,int,int) )in ccKBRSF9.o reshape(int,int)in ccKBRSF9.o display()i n ccKBRSF9.o“std :: ios_base :: Init :: Init()”,引用自:__static_initialization_and_destruction_0(int,int)in ccKBRSF9.o
“std :: basic_string,std :: allocator> :: size()const”,引用自:std :: __ verify_grouping(char const *,unsigned long,std :: basic_string,std :: allocator> const&)in ccKBRSF9.o “std :: cout”,引用来自:__ZSt4cout $ non_lazy_ptr在ccKBRSF9.o(也许你的意思是:__ZSt4cout $ non_lazy_ptr)ld:symbol(s)not found collect2:ld返回1退出状态
我错过了什么?
使用g++
来编译C ++。 这是GCC的C ++前端。 例如:
g++ -I/usr/include/ -L/usr/lib -framework OpenGL -framework GLUT -lm main.cpp
你也可以使用clang++
,但在这两种情况下,你将不得不使用C++
编译器或-lstdc++
选项。