[c++] Collegamento di cURL in Makefile


Answers

Mancano le barre all'inizio dei percorsi sottostanti

-I/usr/local/include
-L/usr/local/lib
Question

Ho bisogno di link cURL in Ubuntu 11.04 dopo aver installato cURL per codice sorgente.

.

Correzione del PROBLEMA

Per prima cosa ho scoperto che -l deve arrivare prima di -L e poi ho scoperto che non stavo inserendo una variabile nel makefile.

.

Ottieni configs cURL:

Sulla mia terminologia:

# curl-config --libs
-L/usr/local/lib -lcurl

# curl-config --cflags
-I/usr/local/include

Va bene, dove questa directory ci sono file cURL.

Il mio makefile:

# Testing cURL
# MAKEFILE

# C++ Compiler (Default: g++)
CXX = g++
CFLAGS = -Wall -Werror

# Librarys
INCLUDE = -Iusr/local/include
LDFLAGS = -Lusr/local/lib 
LDLIBS = -lcurl

# Details
SOURCES = src/main.cpp
OUT = test

all: build

build: $(SOURCES)
    $(CXX) -o $(OUT) $(INCLUDE) $(CFLAGS) $(LDFLAGS) $(SOURCES)

Il mio codice sorgente C ++:

#include <iostream>
#include <curl/curl.h>

int main( void )
{
    CURL *curl;
    CURLcode res;

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

    return 0;
}

E l'ERRORE:

# make
g++ -o test -Iusr/local/include -Wall -Werror -Lusr/local/lib  src/main.cpp 
/tmp/ccli90i2.o: In function `main':
main.cpp:(.text+0xa): undefined reference to `curl_easy_init'
main.cpp:(.text+0x31): undefined reference to `curl_easy_setopt'
main.cpp:(.text+0x3d): undefined reference to `curl_easy_perform'
main.cpp:(.text+0x4d): undefined reference to `curl_easy_cleanup'
collect2: ld returned 1 exit status
make: ** [build] Erro 1

So che questo è un errore nel non trovare la libreria, ma per me tutto è corretto




Links