首先我在Ubuntu 12.04上安装sctp
sudo apt-get install libsctp-dev lksctp-tools
然后在我的.c文件中,我包括:
#include < netinet/in.h >
#include < netinet/sctp.h >
#include < sys/socket.h >
#include < stdlib.h >
#include < unistd.h >
howerver,当我用gcc编译时,结果是:
undefined reference to `sctp_recvmsg'
undefined reference to `sctp_get_no_strms'
undefined reference to `sctp_sendmsg'
有什么问题?
答案 0 :(得分:5)
如果你真的使用gcc temp.c -o temp
编译,那么你没有链接任何库(默认的libc.6.so
除外),你需要一些额外的参数gcc
;也许尝试用
gcc -Wall -g temp.c -lsctp -o temp
在gdb
调试器的帮助下调试程序并认为它没有错误之后,您可以要求编译器使用
gcc -Wall -O2 temp.c -lsctp -o temp
gcc
的程序参数顺序非常重要。