Sysgcc:ld.exe找不到-lcurl -ljsoncpp

时间:2018-02-22 16:22:19

标签: c++ windows raspberry-pi cross-compiling

我正在使用Raspberry Pi 2 Model B上的项目。我开始直接编写和编译Pi,现在我想在Windows 7 PC上工作。我已经安装了SysGCC交叉编译器并设法编译一个简单的Hello-World程序。 问题是,对于我的项目我使用curl和jsoncpp。原生在Raspberry上我编译它没有问题,但Windows上的交叉编译器给我以下错误:

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上的文件夹中,所以我不明白为什么找不到它们。我希望有人可以帮助我,给我一些关于这些东西如何工作的简短基本解释,因为我找不到任何有用的教程或其他有用的问题。

1 个答案:

答案 0 :(得分:0)

在raspberry-pi上,库最有可能从/usr/lib/usr/local/lib等系统目录链接。在Windows上,您需要使用-L标志指定正确的路径。