在没有Xcode IDE的情况下开发C.

前端之家收集整理的这篇文章主要介绍了在没有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

但他们最终导致链接错误

Undefined symbols:
“std::basic_ostream

::operator<<(long)”,referenced from:
reshape(int,int)in ccKBRSF9.o
display() in ccKBRSF9.o “___gxx_personality_v0”,referenced
from:
___gxx_personality_v0$non_lazy_ptr in ccKBRSF9.o
(maybe you meant: ___gxx_personality_v0$non_lazy_ptr) “std::ios_base::Init::~Init()”,
referenced from:
___tcf_0 in ccKBRSF9.o “std::basic_string,
std::allocator
::operator[](unsigned long) const”,referenced from:
std::__verify_grouping(char const*,unsigned long,
std::basic_string,
std::allocator > const&)in
ccKBRSF9.o
std::__verify_grouping(char const*,
std::allocator > const&)in
ccKBRSF9.o “std::basic_ostream >&
std::operator<<

(std::basic_ostream >&,char
const*)”,referenced from:
keyboard(unsigned char,int,int)in ccKBRSF9.o
keyboard(unsigned char,int)in ccKBRSF9.o
reshape(int,int)in ccKBRSF9.o
display() in ccKBRSF9.o “std::ios_base::Init::Init()”,
referenced from:
__static_initialization_and_destruction_0(int,int)in ccKBRSF9.o
“std::basic_string,
std::allocator >::size() const”,
referenced from:
std::__verify_grouping(char const*,
std::allocator > const&)in
ccKBRSF9.o “std::cout”,referenced
from:
__ZSt4cout$non_lazy_ptr in ccKBRSF9.o
(maybe you meant: __ZSt4cout$non_lazy_ptr) ld: symbol(s) not found collect2: ld returned 1 exit
status

我错过了什么?

解决方法

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

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

猜你在找的Xcode相关文章