linux下联合编程的cmakelists怎么写

linux下联合编程的cmakelists怎么写,第1张

CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake。只是 CMake 的组态档取名为 CmakeLists.txt。Cmake 并不直接建构出最终的软件,而是产生标准的建构档(如 Unix 的 Makefile 或 Windows Visual C++ 的 projects/workspaces),然后再依一般的建构方式使用。这使得熟悉某个集成开发环境(IDE)的开发者可以用标准的方式建构他的软件,这种可以使用各平台的原生建构系统的能力是 CMake 和 SCons 等其他类似系统的区别之处。CMake 可以编译源代码、制作程式库、产生适配器(wrapper)、还可以用任意的顺序建构执行档。CMake 支持 in-place 建构(二进档和源代码在同一个目录树中)和 out-of-place 建构(二进档在别的目录里),因此可以很容易从同一个源代码目录树中建构出多个二进档。CMake 也支持静态与动态程式库的建构。

“CMake”这个名字是“cross platform make”的缩写。虽然名字中含有“make”,但是CMake和Unix上常见的“make”系统是分开的,而且更为高阶。

一、下载源文件

源代码文件及其版本:

binutils-2.19.tar.bz2, gcc-core-4.4.4.tar.bz2gcc-g++-4.4.4.tar.bz2 Glibc-2.7.tar.bz2 Glibc-ports-2.7.tar.bz2 Gmp-4.2.tar.bz2 mpfr-2.4.0.tar.bz2mpc-1.0.1.tar.gz Linux-2.6.25.tar.bz2 (由于我在编译出错的过程中,根据出错的信息修改了相关的C代码,故而没有下载相应的补丁)

一般一个完整的交叉编译器涉及到多个软件,主要包括bilinguals、cc、glibc等。其中,binutils主要生成一些辅助工具;gcc是用来生成交叉编译器,主要生成arm-linux-gcc交叉编译工具,而glibc主要提供用户程序所需要的一些基本函数库。

二、建立工作目录

编译所用主机型号 fc14.i686,虚拟机选的是VM7.0,Linux发行版选的是Fedora9,

第一次编译时用的是root用户(第二次用一般用户yyz), 所有的工作目录都在/home/yyz/cross下面建立完成,首先在/home/yyz目录下建立cross目录,然后进入工作目录,查看当前目录。命令如下:

创建工具链文件夹:

[root@localhost cross]# mkdir embedded-toolchains

下面在此文件夹下建立如下几个目录:

setup-dir:存放下载的压缩包;

src-dir:存放binutils、gcc、glibc解压之后的源文件;

Kernel:存放内核文件,对内核的配置和编译工作也在此完成;

build-dir :编译src-dir下面的源文件,这是GNU推荐的源文件目录与编译目录分离的做法;

tool-chain:交叉编译工具链的安装位;

program:存放编写程序;

doc:说明文档和脚本文件;

下面建立目录,并拷贝源文件。

[root@localhost cross] #cd embedded- toolchains

[root@localhost embedded- toolchains] #mkdir setup-dir src-dir kernel build-dir tool-chain program doc

[root@localhost embedded- toolchains] #ls

build-dir doc kernel program setup-dir src-dir tool-chain

[root@localhost embedded- toolchains] #cd setup-dir

拷贝源文件:

这里我们采用直接拷贝源文件的方法,首先应该修改setup-dir的权限

[root@localhost embedded- toolchains] #chmod 777 setup-dir

然后直接拷贝/home/yyz目录下的源文件到setup-dir目录中,如下图:

建立编译目录:

[root@localhost setup-dir] #cd ../build-dir

[root@localhost build -dir] #mkdir build-binutils build-gcc build-glibc

三、输出环境变量

输出如下的环境变量方便我们编译。

为简化 *** 作过程。下面就建立shell命令脚本environment-variables:

[root@localhost build -dir] #cd ../doc

[root@localhost doc] #mkdir scripts

[root@localhost doc] #cd scripts

用编辑器vi编辑环境变量脚本envionment-variables:[root@localhost scripts]

#vi envionment-variables

export PRJROOT=/home/yyz/cross/embedded-toolchains

export TARGET=arm-linux

export PREFIX=$PRJROOT/tool-chain

export TARGET_PREFIX=$PREFIX/$TARGET

export PATH=$PREFIX/bin:$PATH

截图如下:

执行如下语句使环境变量生效:

[root@localhost scripts]# source ./environment-variables

四、建立二进制工具(binutils)

下面将分步介绍安装binutils-2.19.1的过程。

[root@localhost script] # cd $PRJROOT/src-dir

[root@localhost src-dir] # tar jxvf ../setup-dir/binutils-2.19.1.tar.bz2

[root@localhost src-dir] # cd $PRJROOT/build-dir/build-binutils

创建Makefile:

[root@localhost build-binutils] #../../src-dir/binutils-2.19.1/configure --target=$TARGET --prefix=$PREFIX

在build-binutils目录下面生成Makefile文件,然后执行make,make install,此过程比较缓慢,大约需要一个15分钟左右。完成后可以在$PREFIX/bin下面看到我们的新的binutil。

输入如下命令

[root@localhost build-binutils]#ls $PREFIX/bin

第一、解压你下载的ARM-LINUX-GCC交叉编译工具

#tar xvzf arm-linux-gcc-4.3.2.tar.gz -C /

(需要注意的是,在大写字母后面有一个空格)

第二、利用vi编辑器打开/etc/profile文件,并在下面的位置中添加一句话:pathmunge /opt/FriendlyARM//opt/FriendlyARM/toolschain/4.4.3/bin

(注意:该处的/opt/FriendlyARM//opt/FriendlyARM/toolschain/4.4.3/bin根据各人的交叉编译工具解压后所存放的位置而不同)

#vim /etc/profile

# Path manipulation

if [ $EUID = 0 ]then

pathmunge /sbin

pathmunge /usr/sbin

pathmunge /usr/local/sbin

pathmunge /opt/FriendlyARM//opt/FriendlyARM/toolschain/4.4.3/binfi第三、执行下列的命令即可是刚才的配置生效

#source /etc/profile

最后你就可以检测自己的交叉编译环境是否安装成功。可以输入下面的命令来检查:


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8230735.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存