/ / Sysgcc: ld.exe nie może znaleźć -lcurl -ljsoncpp - c ++, windows, raspberry-pi, cross-kompilacja

Sysgcc: ld.exe nie może znaleźć -lcurl -ljsoncpp - c ++, windows, raspberry-pi, cross-kompilacja

Pracuję nad projektem na Raspberry Pi 2Model B. Zacząłem kodować i kompilować bezpośrednio na Pi, a teraz chcę pracować na komputerze z Windows 7. Zainstalowałem już Cross-Compiler SysGCC i udało się skompilować prosty program Hello-World. Problem polega na tym, że w moim projekcie używam curl i jsoncpp. Natywnie na Raspberry nie mam żadnych problemów ze skompilowaniem go, ale cross-kompilator w Windows daje mi następujący błąd:

c:/sysgcc/raspberry/bin/../lib/gcc/arm-linux-gnueabihf/6/../../../../arm-linux-gnueabihf/bin/ld.exe: cannot find -lcurl
c:/sysgcc/raspberry/bin/../lib/gcc/arm-linux-gnueabihf/6/../../../../arm-linux-gnueabihf/bin/ld.exe: cannot find -ljsoncpp

Nie używam pliku makefile, ponieważ nigdy tak naprawdę nie działałem z tym i na raspi po prostu działało dobrze z tym poleceniem:

g++ ../src/rpi/main.cpp ../src/rpi/connection.cpp ../src/rpi/jsonparser.cpp ../src/rpi/idchecker.cpp ../src/rpi/eventoperator.cpp -o ../bin/main -lcurl -ljsoncpp

W systemie Windows próbowałem go za pomocą następującego polecenia:

arm-linux-gnueabihf-g++.exe -std=c++11 ../src/rpi/main.cpp ../src/rpi/connection.cpp ../src/rpi/jsonparser.cpp ../src/rpi/idchecker.cpp ../src/rpi/eventoperator.cpp -o ../bin/main -L"C:/SysGCC/raspberry/arm-linux-gnueabihf/sysroot/usr/include/jsoncpp/json/" -L"C:/SysGCC/raspberry/arm-linux-gnueabihf/sysroot/usr/include/arm-linux-gnueabihf/curl/" -lcurl -ljsoncpp

Czytałem więc, że muszę powiedzieć kompilatorowi / linkerowigdzie są biblioteki, ale naprawdę nie rozumiem dlaczego, ponieważ działa idealnie bez flagi -L na Raspi. Myślę, że umieszczam biblioteki w tym samym folderze co na Raspi, więc nie rozumiem, dlaczego są nie znaleziono. Mam nadzieję, że ktoś może mi pomóc w krótkich podstawowych wyjaśnieniach, jak to działa, ponieważ nie znajduję żadnego roboczego samouczka ani innych pomocnych pytań dotyczących mojego problemu.

Odpowiedzi:

0 dla odpowiedzi № 1

Na raspberry-pi biblioteki najprawdopodobniej zostaną połączone z katalogu systemowego, takiego jak /usr/lib lub /usr/local/lib. W systemie Windows należy podać poprawną ścieżkę (y) za pomocą opcji -L.