首页 文章

在没有Xcode IDE的情况下开发c

提问于
浏览
3

我想在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“___ gxx_personality_v0”中的display(),引自:___ gxx_personality_v0 $ non_lazy_ptr in ccKBRSF9.o(也许你的意思是:___ gxx_personality_v0 $ non_lazy_ptr)“std :: ios_base :: Init :: ~Init()”,引自:ccKBRSF9.o中的___tcf_0“std :: basic_string,std :: allocator :: operator [ ](unsigned long)const“,引用自:stk :: __ verify_grouping(char const *,unsigned long,std :: basic_string,std :: allocator> const&)ccKBRSF9.o std :: __ verify_grouping(char const *,unsigned long ,ccKBRSF9.o中的std :: basic_string,std :: allocator> const&)std :: __ verify_grouping(char const *,unsigned long,std :: basic_string,std :: allocator> const&)ccKBRSF9.o“std :: basic_ostream >&std :: operator <<(std :: basic_ostream>&,char const *)“,引自ccKBRSF9中ccKBRSF9.o键盘(unsigned char,int,int)中的:keyboard(unsigned char,int,int) . o ccKBRSF9.or中的键盘(unsigned char,int,int) ccKBRSF9.o中的eshape(int,int)ccKBRSF9.o中的display()“std :: ios_base :: Init :: Init()”,引自:ccKBRSF9.o中的__static_initialization_and_destruction_0(int,int)“std :: basic_string ,std :: allocator> :: size()const“,引用自:stk :: __ verify_grouping(char const *,unsigned long,std :: basic_string,std :: allocator> const&)ccKBRSF9.o”std :: cout “,引用自:ccKBRSF9.o中的__ZSt4cout $ non_lazy_ptr(也许你的意思是:__ ZSt4cout $ non_lazy_ptr)ld:找不到符号collect2:ld返回1退出状态

我错过了什么?

2 回答

  • 1

    您也可以使用 clang++ ,但在这两种情况下,您都必须使用 C++ 编译器或 -lstdc++ 选项 .

  • 6

    使用 g++ 编译C . 这是GCC的C前端 . 例如 . :

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

相关问题