Я новичок в 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.
Это произошло из-за того, что библиотека curl не связана с компилятором. Правильный способ исправить это в редакторе Codeblocks:
Проект> Параметры сборки ..> Вкладка «Настройки компоновщика»
В разделе «Связать библиотеки» нажмите «Добавить», введите имя библиотеки в появившемся окне, нажмите «ОК», затем снова нажмите «ОК». И перезагрузите Codeblocks.
Других решений пока нет …