UNIX网络编程—SCTP编译运行错误及解决
环境
ubuntu 14.04 64bits
unpv13e
问题1 ‘redefinition of ‘struct in_pktinfo’
解决办法1
cd unpv13e/sctp/
vi unp.h
注释掉struct in_pktinfo部分
原因是该结构已经被包含在标准头文件bits/in.h中了。
问题2 undefined reference to ‘sctp_recvmsg’
依然是编译出现的问题,除了 sctp_recvmsg,还有:
sctpserv01.c:(.text+0x18d): undefined reference to
sctp_recvmsg'
sctp_get_no_strms’
sctpserv01.c:(.text+0x1d5): undefined reference to
sctpserv01.c:(.text+0x248): undefined reference to `sctp_sendmsg’
解决办法2
这个解决办法就有些麻烦了,要修改Makefile文件。为了防止修改错误,最好是将原来的Makefile文件进行备份。
cd unpv13e/sctp/
cp Makefile Makefile~
ok~我们现在对Makefile文件进行修改,因为Makefile里面对所有的demo源文件进行编译,我为了方便就仅仅修改了第1组服务器客户端测试即关于sctpserv01
和sctpclient01
相关的内容。下面内容以diff -u
的方式呈现
//修改后Makefile 修改前Makefile~
cd unpv13e/sctp/
diff -u Makefile~ Makefile
//显示修改信息
--- Makefile~ 2016-06-22 10:19:10.410934352 +0800
+++ Makefile 2016-06-