一、环境介绍 宿主机环境: ubuntu18.04 64位 目标开发板: 龙芯二代(2K1000) 二、资料下载 交叉编译器: http://ftp.loongnix.org/loongsonpi.../pi_2/toolchain/ Linux内核: http://ftp.loongnix.org/loongsonpi/pi_2/source/ 三、编译内核 3.1 配置交叉编译器 解压交叉编译器...,为了方便使用交叉编译器,可以将交叉编译器路径加入到系统环境PATH里。...配置内核,如果想对内核做一些个性化配置,可以进入内核配置菜单进行配置 wbyq@wbyq:~/loongson/linux-3.10$ make ARCH=mips CROSS_COMPILE=mips64el-linux...' make -j 2 ARCH=mips CROSS_COMPILE=mips64el-linuxmake -j 2 ARCH=mips CROSS_COMPILE=mips64el-linux- INSTALL_MOD_PATH
准备下载相关的交叉编译器gcc (1)、aarch32架构的交叉编译器 因为系统是ubuntu 14-04的版本,可以直接使用安装的方式去安装aarch32架构的交叉编译器...也可以按照aarch64架构的方式去下载aarch32的交叉编译器,建议g++版本低一点,4.8.4左右。...-2017.01-x86_64_aarch64-linux-gnu.tar.xz ),这个包,下载即可。...(3)、mips64架构的交叉编译器 在http://www.loongnix.org/index.php/Cross-compile中下载交叉编译器,选择对应的版本,...参考资料 1、交叉编译器 arm-linux-gnueabi 和 arm-linux-gnueabihf 的区别:http://www.cnblogs.com/xiaotlili/p/3306100.
前言 gcc/g++是Linux中的编译器,vim是Linux中的编辑器。要想将代码运行起来还需要编译才可实现。 本篇文章,主要通过预处理、编译、汇编、链接来介绍gcc/g++。...Linux系统下,gcc/g++头文件默认路径: /usr/include/,去查看它即可 条件编译 有一个很深刻的印象,在下载安装pycharm时,需要选择安装社区版还是专业版。...编译 在VS中,编译器会检查语法是否有错误,如果没有错误,才会编译成汇编语言。Linux下的gcc/g++也是一样。...-O0 -O1 -O2 -O3 编译器的优化选项的4个级别,-O0表示没有优化,-O1为缺省值,-O3优化级别最高 -w 不生成任何警告信息。 -Wall 生成所有警告信息。
头文件的展开 此时生成test.i,我们用vim进入test.i,在利用底行模式vs test.c: 同时,在预处理阶段完成了宏替换、去注释以及条件编译: 条件编译的生效(宏的命令行定义) 可以向编译器传参来保证宏在命令行中定义...**这个库的位置: Linux下默认形成可执行程序,默认使用的是动态库 /lib64/libc-2.17.so静态库 生成静态链接 生成可执行程序后面要加上-static 但是我们仔细看一下体积的差距太大了...所以,以后要下载一个C写的程序,我们并不需要下载C标准库,这让我们下载效率成本低很多 静态链接拷贝的不是.so内部的代码,拷贝的是系统里必须存在.a结尾的静态库。
今日更新了Linux的编译器gcc、g++的内容 欢迎大家关注点赞收藏⭐️留言 编译器-gcc/g++ 我们直接用自带的gcc编译器会编译不了,因为当前版本太低了,有些语法不支持。...3种常见c++后缀 .cc和.cpp都是指c++,需要用g++编译器,如果用gcc编译器就会报错。如果想支持更高的语法特性,可以加上 -std=c++11 的选项。g++也可以编译c语言程序。...-O0 -O1 -O2 -O3 编译器的优化选项的4个级别,-O0表示没有优化,-O1为缺省值,-O3优化级别最高 -w 不生成任何警告信息。 -Wall 生成所有警告信息。
劣势:形成的可执行程序体积太大,网络、磁盘、内存的资源占用量大, 2.动态链接 通过编译器内部的链接器,来链接标准函数库,值得注意的是,动态链接的时期是在程序运行的时候,如果程序需要链接,链接器就会链接标准函数库...stdio的std就是standard标准的意思 用这个库的程序非常多,但是库只有一份,所有用C语言写的程序,就不会出现重复的库代码,所以如果以后我们要下载一个C程序,还用下载C标准库吗?...答案是不用的,因为我们系统里边只要有一份库就够使用了,但如果是静态链接的C程序的话,情况就不一样了,一下载就内存占用超大。...windows下动态库后缀为.dll静态库后缀为.lib 在安装vs2022时,我们安装的不仅仅是编译器本身,还要安装标准库的.h文件,以及标准动静态库等 5.Linux的大部分命令就是用C语言写的...大家需要有这个认识,Linux中大部分指令都是用C语言写的。
交叉编译的原理包括以下几个关键步骤: 选择交叉编译工具链: 首先需要选择目标平台的交叉编译工具链,包括交叉编译器、链接器和标准库等。...配置环境: 在进行交叉编译之前,需要配置开发环境,以确保编译器和链接器能够正确识别目标平台的架构和操作系统。这可能涉及设置环境变量、配置编译器选项等。...mips:MIPS 大端架构。 mipsle:MIPS 小端架构。 mips64:MIPS 64 位大端架构。 mips64le:MIPS 64 位小端架构。.../386 linux/amd64 linux/arm linux/arm64 linux/loong64 linux/mips linux/mips64 linux/mips64le linux/mipsle...官方下载 https://dl.min.io/server/minio/release/ 官方提供了部分架构的minio二进制,但有些国产CPU架构下的包,是没有提供的,因此需要自行编译。
前言 在之前已经分享了 【Linux】vim的使用,这次来看看在云服务器上的编译器gcc。 2....这个是因为编译器版本的问题: 查看编译器的版本:gcc -v 版本不是最新的,不支持在for里面定义变量。...mv test.cxx test.txt 这里是不行的,Linux是不关心文件后缀的,但是编译器是关系。这里编译器就是把.txt当成文本文件了。...在Linux里面有,同样在windows里面也有。 在在Linux中库的真正的名字是把前缀lib去掉,去掉“.”后面的后缀。 所以这个就是c标准库。...因为Linux存在这两种库,就决定了,在链接时,有两种方式:动态链接和静态链接。
gcc mycode.c -0 mytest,后,./mytest就可以编译了,相当于把a.out重命名了
我们还可以通过给编译器传递不同的宏值来进行代码的动态裁剪。
用 -D选项可以对编译器传递不同的宏值。在结合条件编译,可以对代码进行动态裁剪。 ...我们对编译器传递了verson2=2,这样的话,条件编译就只编译verson2=2的部分 应用:VS 的免费版和专业版 其实两个版本就是软件,免费版就是一部分的专业版。...4.补充知识:语言与编译器的自举过程 C语言编译器优化成V2----->用C语言编译器v1编译------->v2形成软件(语言的自举) 那么:程序在翻译的过程,是翻译成低级语言,还是直接翻译为二进制文件...( 这里的资源不仅仅是储存这份代码时的磁盘资源,也是代码加在进入内存的内存资源,还有别人在下载你的代码时的网卡资源。
前面介绍了linux的常用命令和对文本的操作,接下来我将对大家领略一下vi编译器的强大功能。 希望大家觉得写的还不错的话可以点个“推荐”哦!...一、vim/vi编译器简介 Vim/Vi是一个功能强大的全屏幕文本编译器(Full Screen Text Editor),是Linux平台上最常用的文本编译器 用于建立、编辑、显示文本文件(linux...三、vim/vi编译器的简单使用 3.1、vi启动 输入vi命令后,便进入全屏幕编辑环境,此时的状态为命令模式。...四、Vi编译器常用的命令 3.1、在文件中移动光标 h:向左移动一个字符 l:向右移动一个字符 k:向上移动一行 j:向下移动一行 ^(即Shift+6):移动到当前行的开头处
tap0,并添加到网桥: sudo tunctl -t tap0 sudo ifconfig tap0 192.168.122.11/24 up sudo brctl addif virbr0 tap0 下载并启动...在这里下载qemu的mips镜像 https://people.debian.org/~aurel32/qemu/mips/ qemu-system-mips -M malta -kernel vmlinux...Debian GNU/Linux 7 debian-mips ttyS0 debian-mips login: ?...buildroot-snapshot.tar.bz2 tar -jxvf buildroot-snapshot.tar.bz2 cd buildroot/ make clean make menuconfig sudo make 安装可以编译mips-linux...架构的编译器 sudo apt-get install gcc-mips-linux-gnu
然后我们再去下载ndk 16b的版本 NDK Version 16 的下载链接 https://dl.google.com/android/repository/android-ndk-r16b-windows-x86...repository/android-ndk-r16b-darwin-x86_64.zip https://dl.google.com/android/repository/android-ndk-r16b-linux-x86..._64.zip 下载完后我们解压到D:\PersonalStudio\android-sdk-windows\ndk-bundle目录下 ?
既然可以用直接方式向光盘写入文件,为什么还要如此麻烦地制作一个映像文件呢?要知道制作映像文件同样是个耗费时间的过程,这样做是否多此一举?其实不然,在正式刻录之前...
Go 1.6(2016年2月)增加了对Linux在64位MIPS的支持,以及Android在32位x86上的支持。同时为Raspberry Pi系统上的Linux在32位ARM提供了官方二进制下载。...Go 1.8(2017年2月)增加了对Linux在32位MIPS的支持,同时为Linux在64位PowerPC和z系统提供了官方二进制下载。...Go 1.9(2017年8月)为Linux在64位ARM提供了官方二进制下载。...高效的编译器后端和社区贡献 尽管在Go早期,x86-64架构获得了最多的关注,但今天我们的目标架构都得到了基于SSA编译器后端的良好支持,并产生了优秀的代码。...总结知识要点 要点 说明 Go语言的跨平台性 从最初就支持多种操作系统和架构 架构支持的发展 随着版本更新,Go增加了对多个新系统和架构的支持 编译器后端和社区支持 优秀的SSA编译器后端和社区贡献推动了
但是这样有一个问题,X86、Arm、MIPS、RISC-V 这些芯片,它们的指令集是由不同的组织或者公司设计的,彼此并不兼容——Arm 和 MIPS 的 CPU 无法运行以 X86 的指令集编码的程序,...所以我们要在 X86 的电脑上编译出能够在 Arm 上运行的程序,我们必须明确告诉编译器,编译生成的可执行文件需要以 Arm 指令集的标准编码。...为了让这个流程变得简单,开发者们为不同的芯片开发了不同的编译器,比如针对 Arm 平台的 arm-linux-gcc,针对 mips 平台的 mips-linux-gnu-gcc,这些编译器都是基于 GCC.../armbian-releases/_toolchains/gcc-linaro-6.4.1-2017.11-x86_64_aarch64-linux-gnu.tar.xz 下载了两个,arm 针对是是...查看编译器版本: ?
架构: amd64, 386, arm, arm64, ppc64, ppc64le, mips, mipsle, mips64, mips64le, wasm, riscv64 等。...例如,一个项目需要在 Linux 和 Windows 上运行,但有些函数实现需要不同的代码。测试: 你可以用构建约束来控制哪些测试代码在特定的平台上运行或不运行。...: $ go versiongo version go1.22.4 linux/amd64$ go run .Go version 1.223....但这些标签并不会阻止 Go 编译器下载并使用最新的版本。即使在使用 //go:build 标签时,编译器仍会根据 go.mod 文件中的 Go 版本进行处理。...如果你的 go.mod 文件指定了 Go 1.23 或更高版本,即使在 Go 1.22 环境下,Go 工具链可能会尝试下载和使用 Go 1.23 的模块或特性。
这里假设是: Linux & Mac : ~/Library/Android/sdk/ndk-bundle/toolchains Window Linux & Mac cd ~/Library/Android.../sdk/ndk-bundle/toolchains ln -s aarch64-linux-android-4.9 mips64el-linux-android ln -s arm-linux-androideabi...-4.9 mipsel-linux-android Windows mklink /D mips64el-linux-android aarch64-linux-android-4.9 mklink.../D mipsel-linux-android arm-linux-androideabi-4.9
https://blog.csdn.net/10km/article/details/80639076 因为厂商提供mips交叉编译器不太满足要求,今天在ubuntu 16.04下尝试编译...mips交叉编译器(gcc 5.2.0),在编译到mpfr时报了个错: /bin/bash ..../bin/bash # 基于君正发布的X1000开发板编译器(mips-gcc520-glibc222),编译gcc 5.2.0,增加-ffunction-sections -fdata-sections.../opt/toolchains/mipsel-gcc520-gdface old_sysroot=$mips_gcc/mips-linux-gnu/libc target_sysroot=$old_sysroot...if [ $with_sysroot ]; then # 复制原编译器的 build tools 到安装路径 target_tools=$install_prefix/mipsel-linux-gnu
领取专属 10元无门槛券
手把手带您无忧上云