交叉编译库链接 (linux) (C++/C)

Posted

技术标签:

【中文标题】交叉编译库链接 (linux) (C++/C)【英文标题】:Cross compiling library linking (linux) (C++/C) 【发布时间】:2015-11-30 20:43:26 【问题描述】:

交叉编译到我的 RPI2 时遇到问题。 在本地编译时,一切正常。

我使用 Buildroot 作为交叉编译器, 没有 lusb-1.0 的所有其他程序都可以正常工作/编译。

本例中的库是“libusb-1.0”。

编译工作正常:

g++ main.cpp -o run -lusb-1.0

编译问题:

arm-linux-g++ main.cpp -o run -lusb-1.0

错误输出:

main.cpp:2:31: fatal error: libusb-1.0/libusb.h: No such file or    
directory.
#include <libusb-1.0/libusb.h>
                              ^

程序:

#include <iostream>
#include <libusb-1.0/libusb.h>
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
#include <errno.h>

using namespace std;

int main()

 cout << "Test!" << endl;
 libusb_init(NULL);

 return 0;

提前感谢您的所有帮助、时间和答案!

【问题讨论】:

在 C 代码上使用 gcc 编译器时存在同样的问题。 【参考方案1】:

问题解决了。

我不得不在 Buildroot 中重新选择库,然后重新构建整个 arm 编译器。

【讨论】:

以上是关于交叉编译库链接 (linux) (C++/C)的主要内容,如果未能解决你的问题,请参考以下文章

makefile 交叉编译怎么引用静态库

交叉编译和静态链接 RUST 库

如何交叉编译 动态库

Qt 交叉编译 Linux -> MacOS 无法链接到 Qt 库

如何构建MIPS交叉编译工具链

Paho C(ARM)的交叉编译问题