C neler yanlış?

Bu konuyu okuyanlar

023

Müdavim
Katılım
26 Mart 2020
Mesajlar
3,968
Çözümler
1
Reaksiyon puanı
4,603
Puanları
113
Yaş
15
Aşağıdaki kodları gcc main.c -o main olarak derliyorum ve libcurl4-gnutls-dev paketi kurulu. Neyi yanlış yapıyorum?
C:
#include <stdio.h>
#include <curl/curl.h>
#include <string.h>
 
int main(void)
{
  char *veri;
  char *data;
  printf("Veri Girin: ");
  scanf("%c", &veri); 
  CURL *curl;
  CURLcode res;
  data = strcat("https://growforum.tk/api/?data=", veri);
  curl = curl_easy_init();
  if(curl) {
    curl_easy_setopt(curl, CURLOPT_URL, data);
 
    res = curl_easy_perform(curl);
    if(res != CURLE_OK)
      fprintf(stderr, "curl_easy_perform() failed: %s\n",
              curl_easy_strerror(res));
 
    curl_easy_cleanup(curl);
  }
  printf("Sonuç: %d", res);
  return 0;
}
Kod:
main.c: In function ‘main’:
main.c:10:11: warning: format ‘%c’ expects argument of type ‘char *’, but argument 2 has type ‘char **’ [-Wformat=]
   10 |   scanf("%c", &veri);
      |          ~^   ~~~~~
      |           |   |
      |           |   char **
      |           char *
/usr/bin/ld: /tmp/ccymCODi.o: in function `main':
main.c:(.text+0x1a6): undefined reference to `curl_easy_init'
/usr/bin/ld: main.c:(.text+0x1d2): undefined reference to `curl_easy_setopt'
/usr/bin/ld: main.c:(.text+0x1de): undefined reference to `curl_easy_perform'
/usr/bin/ld: main.c:(.text+0x1f1): undefined reference to `curl_easy_strerror'
/usr/bin/ld: main.c:(.text+0x21b): undefined reference to `curl_easy_cleanup'
collect2: error: ld returned 1 exit status
Mesaj otomatik birleştirildi:

Bilen yok mu?
Mesaj otomatik birleştirildi:

cURL sorunlarını çözdüm arkadaşlar, derlerken gcc main.c -o main yerine gcc main.c -lcurl -o main yazıyoruz. Ama char** ile alakalı olanı çözemedim.
 
Son düzenleme:

ProgramBoy

Asistan
Katılım
2 Şubat 2021
Mesajlar
183
Reaksiyon puanı
119
Puanları
43
Yaş
48
C:
  char veri[150];
  char data[500];
  char url[100]="https://deneme.com/api/?data=";
....

scanf("%s", veri);
strcpy(data, strcat(url, veri));

char* tipi deklarasyonları dizi tipi olacak şekilde dönüştür bir de
data = strcat("https://growforum.tk/api/?data=", veri) deki gibi data'yı direkt eşitlemek yerine strcpy ile kopyalarsan daha güvenli olur. Ben bu değişikliklerle, eski Windows XP laptopumda derledim ve kod sorunsuz çalıştı.
 
Üst