[RK356x] [Firefly-Linux] 一节课间时间教你在Ubuntu系统安装GCC开发工具

Posted Neutionwei

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[RK356x] [Firefly-Linux] 一节课间时间教你在Ubuntu系统安装GCC开发工具相关的知识,希望对你有一定的参考价值。

Firefly提供的Ubuntu系统并没有预装GCC开发工具,接下来我带领大家安装这个工具,并结合两个例子简单使用GCC

文章目录

一、GGC安装

RK356x64位系统,使用的工具是aarch64-linux-gnu,通过aarch64-加上Tab键并没有发现aarch64-linux-gnu-gcc,这说明系统并没有安装GCC

$ aarch64-
aarch64-linux-gnu-addr2line           aarch64-linux-gnu-gold                aarch64-linux-gnu-pkg-config
aarch64-linux-gnu-ar                  aarch64-linux-gnu-gprof               aarch64-linux-gnu-ranlib
aarch64-linux-gnu-as                  aarch64-linux-gnu-ld                  aarch64-linux-gnu-readelf
aarch64-linux-gnu-c++filt             aarch64-linux-gnu-ld.bfd              aarch64-linux-gnu-size
aarch64-linux-gnu-cpp                 aarch64-linux-gnu-ld.gold             aarch64-linux-gnu-strings
aarch64-linux-gnu-cpp-7               aarch64-linux-gnu-nm                  aarch64-linux-gnu-strip
aarch64-linux-gnu-dwp                 aarch64-linux-gnu-objcopy             aarch64-unknown-linux-gnu-pkg-config
aarch64-linux-gnu-elfedit             aarch64-linux-gnu-objdump    

更新源:

$ sudo apt update

安装GCC

$ sudo apt install gcc

再次查看,可以看到有aarch64-linux-gnu-gcc

$ aarch64-
aarch64-linux-gnu-addr2line           aarch64-linux-gnu-gcc-nm-7            aarch64-linux-gnu-ld.gold
aarch64-linux-gnu-ar                  aarch64-linux-gnu-gcc-ranlib          aarch64-linux-gnu-nm
aarch64-linux-gnu-as                  aarch64-linux-gnu-gcc-ranlib-7        aarch64-linux-gnu-objcopy
aarch64-linux-gnu-c++filt             aarch64-linux-gnu-gcov                aarch64-linux-gnu-objdump
aarch64-linux-gnu-cpp                 aarch64-linux-gnu-gcov-7              aarch64-linux-gnu-pkg-config
aarch64-linux-gnu-cpp-7               aarch64-linux-gnu-gcov-dump           aarch64-linux-gnu-ranlib
aarch64-linux-gnu-dwp                 aarch64-linux-gnu-gcov-dump-7         aarch64-linux-gnu-readelf
aarch64-linux-gnu-elfedit             aarch64-linux-gnu-gcov-tool           aarch64-linux-gnu-size
aarch64-linux-gnu-gcc                 aarch64-linux-gnu-gcov-tool-7         aarch64-linux-gnu-strings
aarch64-linux-gnu-gcc-7               aarch64-linux-gnu-gold                aarch64-linux-gnu-strip
aarch64-linux-gnu-gcc-ar              aarch64-linux-gnu-gprof               aarch64-unknown-linux-gnu-pkg-config
aarch64-linux-gnu-gcc-ar-7            aarch64-linux-gnu-ld                  
aarch64-linux-gnu-gcc-nm              aarch64-linux-gnu-ld.bfd      

二、编译hello.c

新建一个hello.c

$ vi hello.c

添加以下代码:

#include <stdio.h>

int main(int argc, char* argv[])

	printf("hello world!\\n");
	return 0;

保存并退出:

:wq!

编译代码:

$ aarch64-linux-gnu-gcc -o hello hello.c

执行代码:

$ ./hello
hello world!

三、编译源码包

我这里以编译util-linux-2.31.1为例,这个源码包已提前解压好,有了GCC,编译就很简单!
进入源码包目录:

$ cd util-linux-2.31.1

配置编译环境:

$ ./configure 

开始编译:

$ make

编译后可以在.libs目录查看所有产生的库文件:

$ ls .libs
blkid    fstrim             libcommon.la       libmount.la        libsmartcols.so        libuuid.so        lslogins    rfkill     uuidparse
column   libblkid.a         libfdisk.a         libmount.lai       libsmartcols.so.1      libuuid.so.1      lsmem       sfdisk     wdctl
eject    libblkid.la        libfdisk.la        libmount.so        libsmartcols.so.1.1.0  libuuid.so.1.3.0  lsns        swaplabel  wipefs
fdisk    libblkid.lai       libfdisk.lai       libmount.so.1      libtcolors.a           losetup           mkswap      swapoff    zramctl
fincore  libblkid.so        libfdisk.so        libmount.so.1.1.0  libtcolors.la          lsblk             mount       swapon
findfs   libblkid.so.1      libfdisk.so.1      libsmartcols.a     libuuid.a              lscpu             mountpoint  umount
findmnt  libblkid.so.1.1.0  libfdisk.so.1.1.0  libsmartcols.la    libuuid.la             lsipc             partx       uuidd
fsck     libcommon.a        libmount.a         libsmartcols.lai   libuuid.lai            lslocks           prlimit     uuidgen

如果要安装到本地环境,则执行以下命令:

$ make install

以上是关于[RK356x] [Firefly-Linux] 一节课间时间教你在Ubuntu系统安装GCC开发工具的主要内容,如果未能解决你的问题,请参考以下文章

[RK356x] [Firefly-Linux] 一节课间时间带你了解Ubuntu固件各个分区

[RK356x] [Firefly-Linux] 一节课间时间带你了解Linux_SDK

[RK356x] [Firefly-Linux] 10min带你获取了解与编译Kernel源代码

[RK356x] [Firefly-Linux] 一节课间时间教你单独更新Kernel到Ubuntu系统的boot分区

[RK356x] [Firefly-Linux] 10min带你获取了解与编译U-Boot源代码

RK356x U-Boot研究所(引导篇)1.1 BootLoader引导过程浅析