为什么我在Linux中编译sctp程序失败了?

hua*_*986 3 linux undefined-reference sctp

首先我在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 >
Run Code Online (Sandbox Code Playgroud)

howerver,当我用gcc编译时,结果是:

 undefined reference to `sctp_recvmsg'
 undefined reference to `sctp_get_no_strms'
 undefined reference to `sctp_sendmsg'
Run Code Online (Sandbox Code Playgroud)

怎么了?

Bas*_*tch 5

如果你真的编译gcc temp.c -o temp然后你没有链接任何库(默认除外libc.6.so),你需要一些额外的参数gcc; 也许尝试编译

 gcc -Wall -g temp.c -lsctp -o temp
Run Code Online (Sandbox Code Playgroud)

一旦您的程序在调试gdb器的帮助下调试并且您认为它没有错误,您可以要求编译器使用它来优化它

 gcc -Wall -O2 temp.c -lsctp -o temp
Run Code Online (Sandbox Code Playgroud)

程序参数的顺序gcc是重要且重要的.