C中的客户端服务器程序

时间:2013-06-01 04:20:18

标签: c

我编写了一个简单的客户端服务器程序,其中服务器接受来自客户端的消息并打印其详细信息(硬编码用于我的分配)。我最初在Linux(Fedora)机器上写过这个,它工作得非常好。但是当我尝试在我的mac上编译服务器代码时,它无法正常工作。

以下是编译后的消息:

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

任何人都可以帮我解决这个问题吗?

3 个答案:

答案 0 :(得分:3)

将它放在主文件的顶部:

#ifdef __APPLE__
#  define error printf
#endif

答案 1 :(得分:1)

来自" man 3错误":

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

因此,不要在需要在非GNU系统上工作的程序中使用此函数,或者提供自己的替换。

答案 2 :(得分:0)

您的error函数可能在主文件之外的另一个文件中,您包括其声明但不包括其实现:

尝试编译如下:

g++ main.c -l<filetolink>

filetolink是包含error函数实现的文件的名称(没有扩展名)

参考:C - Undefined symbols for architecture x86_64 when compiling on Mac OSX Lion 在谷歌搜索第一个错误行时似乎有多个解决方案