Libcurl Issue - "элемент инициализатора не является константой" - PullRequest
0 голосов
/ 22 декабря 2018

Я промочил ноги от библиотеки C curl.h и столкнулся с проблемой компиляции в первом примере.Основываясь на приведенном здесь примере , я пытаюсь скомпилировать этот код:

#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 голосов
/ 22 декабря 2018

То, что вы пишете:

#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) {
        //...
}
...