0

Я новичок в C++, и я хочу освоить GET-запросы на C++, познакомился с библиотекой - C++ Requests. Разобрался с тем, как подключать заголовочные файлы, подключил и получил ошибку линкера:

 $ clang++ reqs.cpp -o rq -Icpr/include -v
clang version 12.0.0
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-unknown-linux-gnu/10.2
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-unknown-linux-gnu/10.2.1
Found candidate GCC installation: /usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/10.2
Found candidate GCC installation: /usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/10.2.1
Found candidate GCC installation: /usr/lib/gcc/x86_64-unknown-linux-gnu/10.2
Found candidate GCC installation: /usr/lib/gcc/x86_64-unknown-linux-gnu/10.2.1
Found candidate GCC installation: /usr/lib64/gcc/x86_64-unknown-linux-gnu/10.2
Found candidate GCC installation: /usr/lib64/gcc/x86_64-unknown-linux-gnu/10.2.1
Selected GCC installation: /usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/10.2
Candidate multilib: .;@m64
Selected multilib: .;@m64
 "/usr/bin/clang-12" -cc1 -triple x86_64-unknown-linux-gnu -emit-obj -mrelax-all --mrelax-relocations -disable-free -disable-llvm-verifier -discard-value-names -main-file-name reqs.cpp -mrelocation-model static -mframe-pointer=all -fmath-errno -fno-rounding-math -mconstructor-aliases -munwind-tables -target-cpu x86-64 -tune-cpu generic -fno-split-dwarf-inlining -debugger-tuning=gdb -v -resource-dir /usr/lib/clang/12.0.0 -I cpr/include -internal-isystem /usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/10.2/../../../../include/c++/10.2 -internal-isystem /usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/10.2/../../../../include/c++/10.2/x86_64-unknown-linux-gnu -internal-isystem /usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/10.2/../../../../include/c++/10.2/backward -internal-isystem /usr/local/include -internal-isystem /usr/lib/clang/12.0.0/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -fdeprecated-macro -fdebug-compilation-dir /home/catweird/cpp -ferror-limit 19 -fgnuc-version=4.2.1 -fcxx-exceptions -fexceptions -fcolor-diagnostics -faddrsig -o /tmp/reqs-1befa9.o -x c++ reqs.cpp
clang -cc1 version 12.0.0 based upon LLVM 12.0.0 default target x86_64-unknown-linux-gnu
ignoring nonexistent directory "/include"
#include "..." search starts here:
#include <...> search starts here:
 cpr/include
 /usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/10.2/../../../../include/c++/10.2
 /usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/10.2/../../../../include/c++/10.2/x86_64-unknown-linux-gnu
 /usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/10.2/../../../../include/c++/10.2/backward
 /usr/local/include
 /usr/lib/clang/12.0.0/include
 /usr/include
End of search list.
 "/usr/bin/x86_64-unknown-linux-gnu-ld" --build-id --eh-frame-hdr -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -o rq /usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/10.2/../../../../lib64/crt1.o /usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/10.2/../../../../lib64/crti.o /usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/10.2/crtbegin.o -L/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/10.2 -L/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/10.2/../../../x86_64-linux-gnu -L/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/10.2/../../../../lib64 -L/usr/bin/../lib/x86_64-linux-gnu -L/usr/bin/../lib64 -L/lib/x86_64-linux-gnu -L/lib/../lib64 -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib64 -L/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/10.2/../../.. -L/usr/bin/../lib -L/lib -L/usr/lib /tmp/reqs-1befa9.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/10.2/crtend.o /usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/10.2/../../../../lib64/crtn.o
/usr/bin/x86_64-unknown-linux-gnu-ld: /tmp/reqs-1befa9.o: in function `cpr::Response cpr::Get<cpr::Url>(cpr::Url&&)':
reqs.cpp:(.text._ZN3cpr3GetIJNS_3UrlEEEENS_8ResponseEDpOT_[_ZN3cpr3GetIJNS_3UrlEEEENS_8ResponseEDpOT_]+0x24): undefined reference to `cpr::Session::Session()'
/usr/bin/x86_64-unknown-linux-gnu-ld: reqs.cpp:(.text._ZN3cpr3GetIJNS_3UrlEEEENS_8ResponseEDpOT_[_ZN3cpr3GetIJNS_3UrlEEEENS_8ResponseEDpOT_]+0x4b): undefined reference to `cpr::Session::Get()'
/usr/bin/x86_64-unknown-linux-gnu-ld: reqs.cpp:(.text._ZN3cpr3GetIJNS_3UrlEEEENS_8ResponseEDpOT_[_ZN3cpr3GetIJNS_3UrlEEEENS_8ResponseEDpOT_]+0x59): undefined reference to `cpr::Session::~Session()'
/usr/bin/x86_64-unknown-linux-gnu-ld: reqs.cpp:(.text._ZN3cpr3GetIJNS_3UrlEEEENS_8ResponseEDpOT_[_ZN3cpr3GetIJNS_3UrlEEEENS_8ResponseEDpOT_]+0x78): undefined reference to `cpr::Session::~Session()'
/usr/bin/x86_64-unknown-linux-gnu-ld: /tmp/reqs-1befa9.o: in function `void cpr::priv::set_option<cpr::Url>(cpr::Session&, cpr::Url&&)':
reqs.cpp:(.text._ZN3cpr4priv10set_optionIJNS_3UrlEEEEvRNS_7SessionEDpOT_[_ZN3cpr4priv10set_optionIJNS_3UrlEEEEvRNS_7SessionEDpOT_]+0x29): undefined reference to `cpr::Session::SetOption(cpr::Url const&)'
clang-12: error: linker command failed with exit code 1 (use -v to see invocation)

Код программы:

#include <iostream>
#include <cpr/cpr.h>
int main () {
    cpr::Response r = cpr::Get(cpr::Url{"https://example.com/"});
    std::cout << r.text << std::endl;
}
ctwrd
  • 13
  • Перепроверь пути до библиотек – Sergey K. Aug 22 '21 at 04:08
  • дык, библиотеку надо сначала собрать... и при сборке своей программы её прилинковать (флаг -l). – Fat-Zer Aug 22 '21 at 06:26

0 Answers0