ожидаемое первичное выражение перед "__typeof__" - PullRequest
0 голосов
/ 27 июня 2018

Я новичок в C ++. Я пытаюсь крошечный кусок кода взаимодействовать с локальным экземпляром InfluxDB.

#include <iostream>
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
#include <curl/curlver.h>
#include <curl/easy.h>
#include <curl/mprintf.h>
#include <curl/multi.h>
#include <curl/stdcheaders.h>
#include <curl/system.h>
#include <curl/typecheck-gcc.h>

using namespace std;

bool createInfluxDB(char *url, char *data) {
  CURL *curl;

  curl = curl_easy_init();

  if(curl) {
    CURLcode res;
    /* What Content-type should i use?*/
    struct curl_slist* headers = curl_slist_append(headers, "Content-Type: application/json");
    /*--data-urlencode*/
    char *urlencoded = curl_easy_escape(curl, data, int(strlen(data)));

    curl_easy_setopt(curl, CURLOPT_URL, url); // Error here
    curl_easy_setopt(curl, CURLOPT_POST, 1L);
    curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
    curl_easy_setopt(curl, CURLOPT_POSTFIELDS, urlencoded);
    curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE,     (long)strlen(urlencoded));

    res = curl_easy_perform(curl);

    /*omitted controls*/

    curl_free(urlencoded);
    curl_slist_free_all(headers);
    curl_easy_cleanup(curl);
  }

  return(true);
}

int main(int argc, char *argv[]){

   char *url = "http://localhost:8086/query";
   char *data = "q=CREATE DATABASE mydb";
   /* should i change data string to json?
      data = "{\"q\":\"CREATE DATABASE mydb\" }" */

   bool res = createInfluxDB(url, data);

   /*control result*/

   return(0);
}

При попытке его построить я получаю следующие ошибки:

expected primary-expression before '__typeof__'

расширить список ошибок

Есть идеи, откуда это может взяться?

Я работаю над кодовыми блоками 16.01, используя компилятор GCC в Ubuntu.

1 Ответ

0 голосов
/ 29 июня 2018

Это произошло из-за того, что библиотека curl не связана с компилятором. Правильный способ исправить это в редакторе Codeblocks: Проект> Параметры сборки ..> Вкладка «Настройки компоновщика»

В разделе «Связать библиотеки» нажмите «Добавить», введите имя библиотеки в появившемся окне, нажмите «ОК», затем снова нажмите «ОК». И перезагрузите Codeblocks.

...