我编写了一个使用curl库的fornol.c程序,因此包含以下内容:

#include <curl/curl.h>


我想在程序上运行splint,但这是我得到的错误:

$ splint fornol.c
Splint 3.1.2 --- 03 May 2009

/usr/include/curl/curlbuild.h:165:33: Parse Error:
    Suspect missing struct or union keyword: socklen_t :
    int. (For help on parse errors, see splint -help parseerrors.)
*** Cannot continue.


curlbuild.h中的可疑行如下所示:

/* Data type definition of curl_socklen_t. */
typedef CURL_TYPEOF_CURL_SOCKLEN_T curl_socklen_t;


其中CURL_TYPEOF_CURL_SOCKLEN_T已被#define d定义为socklen_t

我在这里做错什么了吗?我应该传递给夹板什么标志以使其在程序上起作用?

最佳答案

我想我找到了解决方案。事实证明,我的机器(最近升级到Ubuntu 11.10的机器)上的sys/socket.h不在/usr/include下。

我必须将以下标志添加到splint

-I/usr/include/x86_64-linux-gnu


然后它起作用了。

09-29 21:55