最近在Ubuntu13.10上编译radius2.1.12时报了一个错:
/opt/freeradius-server-2.1.12/libtool --mode=link gcc \
-o smbencrypt smbencrypt.lo smbdes.lo /opt/freeradius-server-2.1.12/src/lib/libfreeradius-radius.la -lnsl -lresolv -lpthread
gcc -o .libs/smbencrypt .libs/smbencrypt.o .libs/smbdes.o /opt/freeradius-server-2.1.12/src/lib/.libs/libfreeradius-radius.so -lnsl -lresolv -lpthread -Wl,--rpath -Wl,/usr/local//lib
/opt/freeradius-server-2.1.12/src/lib/.libs/libfreeradius-radius.so: undefined reference to `pthread_getspecific'
/opt/freeradius-server-2.1.12/src/lib/.libs/libfreeradius-radius.so: undefined reference to `pthread_key_create'
/opt/freeradius-server-2.1.12/src/lib/.libs/libfreeradius-radius.so: undefined reference to `pthread_once'
/opt/freeradius-server-2.1.12/src/lib/.libs/libfreeradius-radius.so: undefined reference to `pthread_setspecific'
网上搜索了一下,发现大部分是因为没有加参数:-lpthread。
但是这里是加了的啊,为什么还报这个错了。
看到了这个邮件:http://lists.freeradius.org/pipermail/freeradius-users/2014-January/069964.html
里面说在Ubuntu13.10的选项变了,变为-pthread就可以了。真心不明白这个的问题是为什么,太神奇了。