Libcurl问题-“初始化元素不是常数”

时间:2018-12-22 13:55:23

标签: c gcc libcurl

我开始使用C curl.h库,在第一个示例中遇到编译问题。基于example given here,我正在尝试编译以下代码:

#include <curl/curl.h>

CURL *curl = curl_easy_init();
if(curl) {
  CURLcode res;
  curl_easy_setopt(curl, CURLOPT_URL, "http://example.com");
  res = curl_easy_perform(curl);
  curl_easy_cleanup(curl);
}

使用此gcc命令:

gcc curltest.c -lcurl

并收到此错误:

curltest.c:3:14: error: initializer element is not constant
 CURL *curl = curl_easy_init();
              ^
curltest.c:4:1: error: expected identifier or ‘(’ before ‘if’
 if(curl) {
 ^

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

你写什么:

#include <curl/curl.h>

CURL *curl = curl_easy_init();

让我相信您在全局级别上拥有所有这些代码(因此不在函数内)。在全局级别上,不能使用函数调用来初始化变量,也不能具有诸如if之类的可执行语句。您需要在函数内部调用该函数,例如:

#include <curl/curl.h>

CURL *curl;

int main(void)
{
    curl = curl_easy_init();
    if (curl) {
        //...
}