• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Problem z kompilacją biblioteki c++ json cpp

Object Storage Arubacloud
0 głosów
211 wizyt
pytanie zadane 24 października 2023 w C i C++ przez piotr_domanski Bywalec (2,080 p.)
zamknięte 26 października 2023 przez piotr_domanski

Witam,

Chce użyć tej biblioteki w Code Blocks w C++.

open-source-parsers/jsoncpp: A C++ library for interacting with JSON. (github.com)

Próbuje ją skompilować za pomocą Cmake, Cmake pisze mi że skonfigurowana poprawnie i że wygenerowana popranie pliki, jednak w folderze bin i lib nie ma potrzebnych plików do za linkowania biblioteki do CB. 

Będą bardzo wdzięczny jak ktoś mógłby spróbować skompilować to albo dać wskazówki dlaczego nie działa, co robię źle.

Pozdrawiam :)

komentarz zamknięcia: rozwiązanie
komentarz 24 października 2023 przez tangarr Mędrzec (154,860 p.)

Napisz dokładnie w jaki sposób kompilujesz tą bibliotekę.

komentarz 25 października 2023 przez piotr_domanski Bywalec (2,080 p.)
Pobieram ZIP z GitHub. Wypakowuje pliki. Mam Cmake GUI i tam wybieram ścieżkę źródeł biblioteki (rozpakowany ZIP) potem wybieram ścieżkę gdzie ma być skompilowana biblioteka. Naciskam opcję configure w Cmake, pisze mi że zakończyła się pomyślnie, potem naciskam generate i też pisze mi że zakończono pomyślnie. W folderze bin i lib po zbudowaniu nie ma plików do linkowania biblioteki.

1 odpowiedź

0 głosów
odpowiedź 25 października 2023 przez j23 Mędrzec (194,920 p.)
wybrane 26 października 2023 przez piotr_domanski
 
Najlepsza
git clone https://github.com/open-source-parsers/jsoncpp.git
cd jsoncpp/
mkdir build
cd build/
cmake ..
make

Na Linuksie tak to wygląda.

komentarz 25 października 2023 przez piotr_domanski Bywalec (2,080 p.)

zbudowałem to za pomocą MSYS i mam pliki w folderze lib 

Linkuje do CB i mam błędy:

||=== Build: Debug in test32 (compiler: GNU GCC Compiler) ===|

obj\Debug\main.o||In function `Z19LINK_ACCOUNT_GITHUBv':|
D:\C\Music\test32\FUNCTION_SOLDEN_SYSTEM.cpp|836|undefined reference to `Json::CharReaderBuilder::CharReaderBuilder()'|
D:\C\Music\test32\FUNCTION_SOLDEN_SYSTEM.cpp|837|undefined reference to `Json::CharReaderBuilder::newCharReader() const'|
D:\C\Music\test32\FUNCTION_SOLDEN_SYSTEM.cpp|839|undefined reference to `Json::Value::Value(Json::ValueType)'|
D:\C\Music\test32\FUNCTION_SOLDEN_SYSTEM.cpp|843|undefined reference to `Json::Value::operator[](char const*)'|
D:\C\Music\test32\FUNCTION_SOLDEN_SYSTEM.cpp|843|undefined reference to `Json::Value::asString[abi:cxx11]() const'|
D:\C\Music\test32\FUNCTION_SOLDEN_SYSTEM.cpp|844|undefined reference to `Json::Value::operator[](char const*)'|
D:\C\Music\test32\FUNCTION_SOLDEN_SYSTEM.cpp|844|undefined reference to `Json::Value::asInt() const'|
D:\C\Music\test32\FUNCTION_SOLDEN_SYSTEM.cpp|845|undefined reference to `Json::Value::operator[](char const*)'|
D:\C\Music\test32\FUNCTION_SOLDEN_SYSTEM.cpp|845|undefined reference to `Json::Value::asString[abi:cxx11]() const'|
D:\C\Music\test32\FUNCTION_SOLDEN_SYSTEM.cpp|846|undefined reference to `Json::Value::operator[](char const*)'|
D:\C\Music\test32\FUNCTION_SOLDEN_SYSTEM.cpp|846|undefined reference to `Json::Value::asInt() const'|
D:\C\Music\test32\FUNCTION_SOLDEN_SYSTEM.cpp|847|undefined reference to `Json::Value::operator[](char const*)'|
D:\C\Music\test32\FUNCTION_SOLDEN_SYSTEM.cpp|847|undefined reference to `Json::Value::asInt() const'|
D:\C\Music\test32\FUNCTION_SOLDEN_SYSTEM.cpp|848|undefined reference to `Json::Value::operator[](char const*)'|
D:\C\Music\test32\FUNCTION_SOLDEN_SYSTEM.cpp|848|undefined reference to `Json::Value::asInt() const'|
D:\C\Music\test32\FUNCTION_SOLDEN_SYSTEM.cpp|849|undefined reference to `Json::Value::operator[](char const*)'|
D:\C\Music\test32\FUNCTION_SOLDEN_SYSTEM.cpp|849|undefined reference to `Json::Value::asInt() const'|
D:\C\Music\test32\FUNCTION_SOLDEN_SYSTEM.cpp|850|undefined reference to `Json::Value::operator[](char const*)'|
D:\C\Music\test32\FUNCTION_SOLDEN_SYSTEM.cpp|850|undefined reference to `Json::Value::asString[abi:cxx11]() const'|
D:\C\Music\test32\FUNCTION_SOLDEN_SYSTEM.cpp|851|undefined reference to `Json::Value::operator[](char const*)'|
D:\C\Music\test32\FUNCTION_SOLDEN_SYSTEM.cpp|851|undefined reference to `Json::Value::asString[abi:cxx11]() const'|
D:\C\Music\test32\FUNCTION_SOLDEN_SYSTEM.cpp|840|undefined reference to `Json::Value::~Value()'|
D:\C\Music\test32\FUNCTION_SOLDEN_SYSTEM.cpp|839|undefined reference to `Json::CharReaderBuilder::~CharReaderBuilder()'|
D:\C\Music\test32\FUNCTION_SOLDEN_SYSTEM.cpp|839|undefined reference to `Json::Value::~Value()'|
D:\C\Music\test32\FUNCTION_SOLDEN_SYSTEM.cpp|836|undefined reference to `Json::CharReaderBuilder::~CharReaderBuilder()'|
||error: ld returned 1 exit status|
||=== Build failed: 26 error(s) (0 minute(s), 1 second(s)) ===|

Używam mingw 32 
 

komentarz 26 października 2023 przez j23 Mędrzec (194,920 p.)

Zgaduje, że Code::BLocks i MSYS2 używają różnych wersji kompilatorów (bo zakładam, że dodałeś poprawnie bibliotekę do projektu).

Wejdź we wspomniany katalog build/ i wywołaj make install, później z poziomu terminala skompiluj któryś z programów przykładowych (w pliku źródłowym masz napisane, co wywołać w linii komend, by skompilować program). Jeśli kompilacja przejdzie, to znaczy, że najprawdopodobniej biblioteka została skompilowana poprawnie. Wtedy wystarczy zintegrować C::B z MSYS2, by korzystał z właściwego kompilatora.

komentarz 26 października 2023 przez piotr_domanski Bywalec (2,080 p.)
działa już, użyłem cmd bo mam tam podłączony kompilator Mingw,

Dzięki za zainteresowanie :)

Podobne pytania

0 głosów
2 odpowiedzi 329 wizyt
0 głosów
1 odpowiedź 251 wizyt
pytanie zadane 29 sierpnia 2018 w C i C++ przez Krol. Początkujący (400 p.)

92,634 zapytań

141,505 odpowiedzi

319,883 komentarzy

62,015 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...