linux编译执行命令 linux编译运行命令

如何使用linux交叉编译采用交叉编译的主要原因在于,多数嵌入式目标系统不能提供足够的资源供编译过程使用,因而只好将编译工程转移到高性能的主机中进行 。
linux下的交叉编译环境重要包括以下几个部分:
1.对目标系统的编译器gcc
2.对目标系统的二进制工具binutils
3.目标系统的标准c库glibc
4.目标系统的linux内核头文件
交叉编译环境的建立步骤
一、下载源代码 下载包括binutils、gcc、glibc及linux内核的源代码(需要注意的是 , glibc和内核源代码的版本必须与目标机上实际使用的版本保持一致),并设定shell变量PREFIX指定可执行程序的安装路径 。
二、编译binutils 首先运行configure文件,并使用--prefix=$PREFIX参数指定安装路径,使用--target=arm-linux参数指定目标机类型,然后执行make install 。
三、配置linux内核头文件
首先执行make mrproper进行清理工作 , 然后执行make config ARCH=arm(或make menuconfig/xconfig ARCH=arm)进行配置(注意,一定要在命令行中使用ARCH=arm指定cpu架构 , 因为缺省架构为主机的cpu架构),这一步需要根据目标机的实际情况进行详细的配置,笔者进行的实验中目标机为HP的ipaq-hp3630 PDA,因而设置system type为SA11X0,SA11X0 Implementations中选择Compaq iPAQ H3600/H3700 。
配置完成之后,需要将内核头文件拷贝到安装目录: cp -dR include/asm-arm $PREFIX/arm-linux/include/asm cp -dR include/linux $PREFIX/arm-linux/include/linux
四、第一次编译gcc
首先运行configure文件,使用--prefix=$PREFIX参数指定安装路径,使用--target=arm-linux参数指定目标机类型,并使用--disable-threads、--disable-shared、--enable-languages=c参数 , 然后执行make install 。这一步将生成一个最简的gcc 。由于编译整个gcc是需要目标机的glibc库的 , 它现在还不存在,因此需要首先生成一个最简的gcc,它只需要具备编译目标机glibc库的能力即可 。
五、交叉编译glibc
这一步骤生成的代码是针对目标机cpu的,因此它属于一个交叉编译过程 。该过程要用到linux内核头文件 , 默认路径为$PREFIX/arm-linux/sys-linux,因而需要在$PREFIX/arm-linux中建立一个名为sys-linux的软连接 , 使其内核头文件所在的include目录;或者,也可以在接下来要执行的configure命令中使用--with-headers参数指定linux内核头文件的实际路径 。
configure的运行参数设置如下(因为是交叉编译,所以要将编译器变量CC设为arm-linux-gcc): CC=arm-linux-gcc ./configure --prefix=$PREFIX/arm-linux --host=arm-linux --enable-add-ons 最后,按以上配置执行configure和make install , glibc的交叉编译过程就算完成了 , 这里需要指出的是,glibc的安装路径设置为$PREFIXARCH=arm/arm-linux,如果此处设置不当,第二次编译gcc时可能找不到glibc的头文件和库 。
六、第二次编译gcc
运行configure,参数设置为--prefix=$PREFIX --target=arm-linux --enable-languages=c,c。
运行make install 。
到此为止整个交叉编译环境就完全生成了 。
几点注意事项
第一点、在第一次编译gcc的时候可能会出现找不到stdio.h的错误,解决办法是修改gcc/config/arm/t-linux文件,在TARGET_LIBGCC2_CFLAGS变量的设定中增加-Dinhibit_libc和-D__gthr_posix_h 。
linux终端下如何进行C语言编译1、首先在linux下判断是否安装gcc编译器,直接执行:gcc -v , 判断是否安装gcc 。
2、然后需要在代码框内写一个简单的C源程序 。
3、在程序中使用了C语言中的数学开方函数,sqrt(),所以需要引入math.h头文件 。
4、写完源程序之后,我们对其进行编译 , 如果使用通常的编译语句,【gcc math.c -o math】进行编译,会出现错误;大概的意思就是不认识sqrt这个东西 。
5、所以需要使用正确的命令:【gcc math.c -lm -o math】;这样才能编译正确 。
Linux怎么编译c文件用什么指令Linux编译c源文件使用的命令为g,操作步骤如下:
用vim命令打开一个文本进行编辑 , 如:
#vim hello.cpp
书写源代码内容,如:
#include stdio.h
int main()
{
printf("hello world\n" );
return 0;
}
按ESC键,终止输入 , 用:wq命令保存,退出 。
编译
#g-o hello hello.cpp
-o的意思是用来指定生成程序的名字
运行
#./hello
hello world
#
linux 怎么编译c的源程序的?gcc,编译命令是什么?编译方法:格式 gcc [option] [sourcefilename]常用的选项最简单的是:gcc hello.c默认的情况下将生成a.out的可执行性文件,
只需要在终端上输入./a.out就可以看到执行的结果,如果你想指定生成目标文件的名字那么你可以加上 -o选项,命令如下:gcc -o hello hello.c
命令:gcc -c hello hello.c
扩展资料:
gcc命令的基本用法
gcc[options] [filenames]
【linux编译执行命令 linux编译运行命令】其中,filenames为文件名;options为编译选项 。
当不使用任何编译选项编译hello.c时,gcc将会自动编译产生一个a.out的可执行文件:
[root@localhost c]# ls
hello.c
[root@localhost c]# gcc hello.c
[root@localhost c]# ls
a.outhello.c
执行:
[root@localhost c]# ./a.out
Hello, World!
使用-o编译选择 , 可以为编译后的文件指定一个名字:
[root@localhost c]# ls
a.outhello.c
[root@localhost c]# gcc hello.c -o hello
[root@localhost c]# ls
a.outhellohello.c
执行:
[root@localhost c]# ./hello
Hello, World!
注意:使用-o选项时,-o后面必须跟一个文件名,即:-o outfile 。
为了便于描述后面的选项,删除hello和a.out可执行文件 。
linux下执行qt程序怎么编译运行1、在Linux下的命令行编辑程序:
[root@localhost root]# mkdir hello
//mkdir命令创建一个hello目录
[root@localhost root]# cd hello
//cd命令切换到刚才创建的hello目录
[root@localhost hello]# vi main.cpp
//在hello目录中用vi创建一个main.cpp文件将下面的代码输入到main.cpp文件中
#include QApplication
#include QLabel
int main(int argc,char *argv[])
{
QApplication app(argc,argv);
QLabel *label = new QLabel(“Hello Qt”);
Label-show();
returnapp.exec();
}
2、然后在命令行编译程序:
[root@localhost hello]# qmake –project
//执行qmake –project,因为目录是hello,因此在hello目录下生成一个与平台无关的项目文件hello.pro,
[root@localhost hello]# qmake hello.pro
//执行qmake hello.pro项目文件后 , 在hello目录下生成一个与平台有关的Makefile文件 。
[root@localhost hello]# make
//执行make进行编译源代码,并生成main.o目标文件及hello执行文件 。
[root@localhost hello]# ./hello
//执行hello,就会弹出Hello Qt窗口,到此说明成功了 。
linux编译执行命令的介绍就聊到这里吧 , 感谢你花时间阅读本站内容,更多关于linux编译运行命令、linux编译执行命令的信息别忘了在本站进行查找喔 。

    推荐阅读