Sysgcc: ld.exe cannot find -lcurl -ljsoncpp

Sysgcc: ld.exe cannot find -lcurl -ljsoncpp

本文关键字:find -lcurl -ljsoncpp cannot exe ld Sysgcc      更新时间:2023-10-16

我正在研究Raspberry Pi 2模型B上的一个项目。我开始直接在PI上进行编码和编译,现在我想在Windows 7 PC上工作。我已经安装了SYSGCC交叉补偿器,并设法编译了一个简单的Helly-World程序。问题是,对于我的项目,我使用Curl和JSONCPP。在覆盆子上,我没有任何问题,但是窗户上的交叉补偿器给我以下错误:

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

我不使用makefile左右,因为我从未真正使用过,并且在RASPI上,它与此命令效果很好:

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

在Windows系统上,我尝试使用这样的命令尝试:

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

所以我读到我必须告诉编译器/链接器库在哪里,但是我并不真正理解为什么它在RASPI上没有-l标志的情况下它可以很好地工作。我想我将库放在与RASPI上的同一文件夹中,所以我不明白为什么找不到它们。我希望有人可以帮助我矿石对这些东西的工作方式有一些简短的基本解释,因为我找不到任何有效的教程或其他有用的问题。

在Raspberry-pi上,库最有可能与系统目录(如/usr/lib/usr/local/lib(链接。在Windows上,您需要用-l标志指定正确的路径。