导航:首页 > 源码编译 > linux编译环境怎么搭建

linux编译环境怎么搭建

发布时间:2025-09-04 20:23:41

linux-Arm环境下配置编译qt-everywhere及交叉编译环境

在进行Linux-Arm环境下配置编译qt-everywhere及交叉编译环境的过程中,首先需要明确的是,Qt并未直接提供针对Arm平台的版本,故需要通过qt-everywhere套件在Arm系统上自行编译。在此过程中,我们需特别注意Qt-everywhere在Arm环境下编译可能遇到的问题,例如尝试直接使用./configure -prefix xxx来编译时,可能会出现“libqtharfbuzz.a:No such file or directory”的报错,导致编译失败。

因此,在Arm板上进行编译前的准备时,需对某些模块进行取舍,即在./configure阶段将其标注为不需要。接下来,我们将具体流程详细展开。

1. 下载并解压qt-everywhere包至指定文件夹,例如使用download.qt.io下载并解压qt-everywhere-src-5.12.10.tar.xz至工作目录。

2. 进入qt-everywhere-src-5.12.10目录,使用./configure -prefix ~/qtInstall来配置并指定编译后的Qt安装目录。具体安装目录可以根据需要自行调整。

3. 若./configure过程无误,将提示可以使用make install进行编译和安装。然而,编译过程中可能会遇到如“数字有关的函数未被定义”的错误,例如在qendian.h中。解决此问题,需手动添加相应的头文件,如在文件中添加#include \ 来解决。

4. 在完成make install后,可能还会遇到其他依赖库缺失的错误,如libharfbuzz或python库。解决这类问题,可以通过在Linux系统中使用sudo apt-get install libharfbuzz-dev安装libharfbuzz库,或使用sudo apt-get install python安装Python库,然后删除build后的相关文件,重新编译Qt。

通过以上步骤,我们能够在Arm环境下成功配置并编译qt-everywhere,为后续的交叉编译环境搭建奠定基础。

⑵ 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下环境搭建 怎么配置编译器

编译器:GCC编译器可以用来编译C和C++源程序,C编译器通过文件的后缀来判断是C程序还是C++程序。一般来说C源文件的后缀为“.C”,而C++源文件的后缀为“.C”或“C++”。

但GCC编译器只能编译C++源程序,不能与使用的库连接,因此用G++来完成C++程序的编译与连接,该程序会自动调用GCC来编译。


Linux里环境变量的设置,有如下几种方法:

(1)直接在终端里输入export后面加要设的变量,例如QT:

ExportQTDIR=$PWD/qt-2.3.2

其中,pwd是用来显当前路径的命令,在其前面加上$,则表示QT的目标目录在当前目录下的“qt-2.3.2”里,当然“$PWD”也可以用绝对路径来代替。这种方法所设的环境变量在下次开机后不再有效,而且换个shell也不会有效,只是临时的。

(2)在etc/profile里添加环境变量,比如:

exportQTDIR=/usr

exportLD_LIBRARY_PATH=$QTDIR/lib

exportQT_QWS_FONTDIR=$QTDIR/lib/fonts

exportQWS_DISPLAY="LinuxFb:/dev/fb0"

(3)修改.bashrc,如果需要给某个用户权限使用这些环境变量,只需修改其个人用户家目录下的.bashrc文件就可以了。

(4)用以上面两种方法设置好环境变量后记得重启


以上使用QT为例

阅读全文

与linux编译环境怎么搭建相关的资料

热点内容
直流马达如何连接5v单片机 浏览:259
后缀为win的文件怎么解压 浏览:800
压缩包解压后为什么一张白纸 浏览:583
服务器和云盒子 浏览:170
python画cad电气图 浏览:417
三菱plcfx3sa编程电缆 浏览:312
山西视频加密防盗 浏览:837
华为mml命令查看用户量 浏览:905
场论朗道pdf 浏览:370
如何使用qtquick编译器 浏览:48
山西高配服务器云服务器 浏览:740
为什么编译按f9没反应 浏览:120
购物app都适合买什么东西 浏览:273
savetxt函数python 浏览:575
编译器小端改大端 浏览:640
华为安卓哪些文件夹能删除 浏览:403
手机samp服务器地址 浏览:205
phpformat函数 浏览:565
单片机由线 浏览:592
如何查找方舟编译过的app 浏览:898