Anda dapat mencoba menggunakan curl-config --libs
.
Inklusi file header Anda baik-baik saja; masalah Anda terjadi pada langkah penautan. Untuk menautkan ke libcurl, Anda perlu menambahkan -lcurl
opsi baris perintah, dengan anggapan dipasang di direktori standar:
g++ -o sms ./src/sms.o -lcurl
Jika tidak diinstal di direktori standar, Anda juga perlu menambahkan -L/path/to/libcurl
, mis. sesuatu seperti:
# Assuming that /home/geekman/workspace/libcurl is where libcurl.a is located
g++ -o sms ./src/sms.o -L/home/geekman/workspace/libcurl -lcurl
Perhatikan juga bahwa -lcurl
opsi harus muncul setelah daftar file objek yang Anda tautkan, jika tidak maka tidak akan ditautkan dengan benar.
Siapa pun yang menggunakan ecplise CDT maka Anda perlu melakukan hal berikut. Pertama di terminal masuk
curl-config --libs
Di komputer saya, hasilnya adalah
-L/usr/lib/i386-linux-gnu -lcurl
kemudian lakukan sesuai dengan tangkapan layar ini dan Anda akan dapat mengkompilasi. btw jangan lupa untuk menambahkan file header di kode Anda
Jadi Anda memasukkan jalur folder pustaka tanpa -L dan nama pustaka tanpa -l karena akan ditambahkan secara otomatis oleh linker.
Jawaban alternatif (yang pertama sangat bagus). Pertimbangkan untuk menggunakan keluaran yang dikembalikan oleh "pkg-config --libs libcurl" sebagai argumen untuk kompiler Anda.
Misalnya,
CPPFLAGS=`pkg-config --libs libcurl`
g++ $CPPFLAGS myfile.o
Pkg-config adalah cara standar untuk pustaka sumber terbuka untuk menyampaikan kepada Anda cara menautkannya / #include file mereka.