0

Ubuntu 12.04 LTS

我下载了:libosip2-4.0.0.tar.gz libeXosip2-4.0.0.tar.gz

解压它们并执行: ./configure make make install for each 没有错误。当我编译我得到这个错误:

gcc -std=c99 qualySip.c
qualySip.c: In function ‘main’:
qualySip.c:32:3: error: unknown type name ‘eXosip_t’

这是代码:

#include <sys/socket.h>
#include <netinet/in.h>
#include <eXosip2/eXosip.h>
#include <stdint.h>

int main(int argc, char **argv) { 

  // Initialize the osip trace (compile this code with -DENABLE_TRACE)
  int i;
  eXosip_t *ctx;
  int port = 5060;
  TRACE_INITIALIZE (6, NULL);

  // Initialize eXosip (and osip) stack
  ctx = eXosip_malloc();
  if (ctx==NULL)
    return -1;

  i=eXosip_init(ctx);
  if (i!=0)
  return -1;

  // Open a TCP socket for signalling
  i = eXosip_listen_addr(ctx,IPPROTO_TCP, NULL, port, AF_INET, 0);
  if(i != 0){
    eXosip_quit(ctx);
    fprintf(stderr, "Could not initialize transport layer\n");
    return -1;
  }

return 0; //done

}

这是文件搜索:

find / -name "eXosip.h"
/usr/include/eXosip2/eXosip.h
/usr/local/src/pcap/libeXosip2-4.0.0/include/eXosip2/eXosip.h

我也试过:

gcc -std=c99 qualySip.c -I/usr/local/src/pcap/libeXosip2-4.0.0/include/
4

2 回答 2

0

将 struct 放在 eXosip_t 类型之前,例如:

struct eXosip_t *ctx;
于 2014-02-08T15:40:20.277 回答
0

eXosip_t 是一个typedef struct. 声明变量时必须使用struct关键字。变量ctx之前没有在任何地方声明过。

于 2021-11-03T20:20:00.120 回答