2013-06-01 248 views
5

我写了一个简单的客户端服务器程序,服务器接受来自客户端的消息并打印他们的详细信息(硬编码为我的任务)。我最初在Linux(Fedora)机器上写过这个,并且它工作得很好。但是,当我尝试在我的Mac上编译服务器代码时,它不起作用。客户端服务器程序C

以下是编译后的消息:

Undefined symbols for architecture x86_64: 
    "_error", referenced from: 
     _main in cc3O1167.o 
ld: symbol(s) not found for architecture x86_64 
collect2: ld returned 1 exit status 

谁能帮我这个?

+0

真的很难用这个帮助你,你可能使用了一个不同的标准C库,导致Symbol不存在的问题..我建议使用-lc标志运行ld。 –

+0

您有兼容性问题。你的Fedora 32bit? – ka2m

+0

将程序剥离到最小程度以复制问题,然后在此处发布该代码。我有一台Mac,但没有任何代码就无法帮到你。 –

回答

3

将这个在你的主文件的顶部:

#ifdef __APPLE__ 
# define error printf 
#endif 
1

从“人3错误”:

These functions and variables are GNU extensions, and should not be 
    used in programs intended to be portable. 

所以,不要使用此功能在需要在非GNU系统上工作的程序中,或者提供您自己的替代品。