加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

用于arm-linux-gcc的C/C++目标的简单makefile

发布时间:2020-12-14 01:14:12 所属栏目:Linux 来源:网络整理
导读:我想使用arm- linux-gcc编译器套件[arm-linux-gcc(Buildroot 2011.08)4.3.6]交叉编译ARM架构的简单程序.我试图使用一个简单的makefile来编译C代码,另一个简单的makefile用于编译C代码.例如,我的C代码生成文件在下面重现,但它不会创建一个ELF二进制文件,以便
我想使用arm- linux-gcc编译器套件[arm-linux-gcc(Buildroot 2011.08)4.3.6]交叉编译ARM架构的简单程序.我试图使用一个简单的makefile来编译C代码,另一个简单的makefile用于编译C代码.例如,我的C代码生成文件在下面重现,但它不会创建一个ELF二进制文件,以便在我的嵌入式系统上运行.主机系统是x64 GNU Linux.

这是我为C程序编写的非常简单的makefile的列表:

CC=arm-linux-gcc
CFLAGS=-Wall
main: test.o 

clean:
    rm -f test test.o

上面复制的makefile只创建一个扩展名为.o的目标文件,而不创建ELF二进制文件.

我已经用Google搜索了一个很好的解决方案,但我似乎找不到一个网页显示C和C程序的示例交叉编译ARM makefile.也许这篇文章的答案可以显示这样的例子.

解决方法

我尝试了你的Makefile并更改了以下内容:

test: test.o

它在更改后工作并创建了一个名为test的二进制文件.似乎有一些隐含的规则知道如果其中一个依赖项是whatoo,如何链接任何东西.

另一种方法是明确列出规则:

main: test.o
        $(CC) -o $@ $$

这使用特殊的宏$@(表示目标)和$$(表示依赖项).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读