• 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

42 Warsaw Coding Academy
0 głosów
495 wizyt
pytanie zadane 24 października 2023 w C i C++ przez piotr_domanski Bywalec (2,450 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 (155,180 p.)

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

komentarz 25 października 2023 przez piotr_domanski Bywalec (2,450 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 (195,240 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,450 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 (195,240 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,450 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 378 wizyt
0 głosów
1 odpowiedź 391 wizyt
pytanie zadane 29 sierpnia 2018 w C i C++ przez Krol. Początkujący (400 p.)

93,379 zapytań

142,380 odpowiedzi

322,533 komentarzy

62,734 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

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...