Můžete zkusit použít curl-config --libs
.
Vaše zahrnutí souboru záhlaví jsou v pořádku; váš problém se vyskytuje v kroku propojení. Chcete-li vytvořit odkaz proti libcurl, musíte přidat -lcurl
možnost příkazového řádku, za předpokladu, že je nainstalována ve standardním adresáři:
g++ -o sms ./src/sms.o -lcurl
Pokud není nainstalován ve standardním adresáři, musíte také přidat -L/path/to/libcurl
, např. něco jako:
# Assuming that /home/geekman/workspace/libcurl is where libcurl.a is located
g++ -o sms ./src/sms.o -L/home/geekman/workspace/libcurl -lcurl
Všimněte si také, že -lcurl
možnost se musí objevit po seznam souborů objektů, které propojujete, jinak se nepropojí správně.
Každý, kdo používá ecplise CDT, pak musíte udělat následující. Nejprve na terminálu enter
curl-config --libs
Na mém počítači je výsledek
-L/usr/lib/i386-linux-gnu -lcurl
pak udělejte podle tohoto snímku obrazovky a budete moci kompilovat. btw nezapomeňte do kódu přidat hlavičkové soubory
Zadáte tedy cestu ke složce knihovny bez -L a název knihovny bez -l, protože budou automaticky přidány linkerem.
Alternativní odpověď (první je vynikající). Zvažte použití výstupu vráceného "pkg-config --libs libcurl" jako argumentu pro váš kompilátor.
Například,
CPPFLAGS=`pkg-config --libs libcurl`
g++ $CPPFLAGS myfile.o
Pkg-config je standardní způsob, jak vám knihovny s otevřeným zdrojovým kódem sdělují, jak se proti nim propojit / #include jejich soubory.