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

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

最佳答案

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

关于c++ - Sysgcc : ld. exe 找不到-lcurl -ljsoncpp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48932363/

相关文章:

c++ - VBA 调用相同的 C++ dll 返回不同的结果

c++ - shrink_to_fit 会导致搬迁吗?

Windows 任务计划程序将只运行一次应用程序

windows - 如何解锁 Windows 锁屏?

python - 使用摄像头或 IP 摄像头加快网络设备的视频播放速度

python - ChromeDriver 不工作

python - 如何使用 Cython 将 Python 列表传递给 C 函数

c++ - 索引大型 txt 文件

c++ - 当类及其方法存储在指针数组中时如何调用它

windows - Wow64DisableWow64Fs重定向文件退出