交叉编译、Crosstool、Makefile、libreadline

标签 c linux makefile cross-compiling crosstool-ng

我正在使用 Simplicity Studio 为我的应用程序生成代码。它会自动生成一个 Makefile,我能够构建在我的主机 amd64 ubuntu 16.02 上运行的应用程序。

现在我想构建应用程序,以便它可以在 Raspberry Pi 中运行。所以我安装了 crostool-ng 和 Rpi crosstool。现在我不太了解 make 文件,但我用 make CC=arm-linux-gnueabihf-gcc 而不是 make

它失败了

fatal error: readline/readline.h: No such file or directory

我已经为 armhf 安装了 libreadline-devlibreadline-dev

我这样做的方式正确吗?我需要做一些其他的改变吗?

我之前没有做过大项目,对makefile的理解很差。

我已经为 Pi 编译了简单的 C 程序并且它们可以工作。

makefile

Application code and makefile

最佳答案

也许是您需要的变量 CROSS_COMPILE。

工具链不仅仅是编译器。它们甚至是整个构建过程所需的基本 bin 实用程序。

试试这个:

make CROSS_COMPILE=arm-linux-gnueabihf-

关于交叉编译、Crosstool、Makefile、libreadline,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48606085/

相关文章:

linux - 差异和补丁没有按预期工作

c++ - 用codelite编译。 'make' 无法识别

c++ - Makefile 只重新编译更改的对象?

c - 进程间信号量有时无法按预期工作

linux - 未定义对 `clock_gettime` 的引用,尽管给出了 `-lrt`

PHP 传递参数以执行奇怪的行为

C++ - 错误 : multiple types in one declaration

c - 遇到文件 I/O 和字符串数组的问题

c - 如何按顺序显示平衡二叉树的下一个元素? (为了)

c++ - 如何换出内存块?