linux编译

来源:互联网 发布:lr软件怎么使用 编辑:程序博客网 时间:2024/06/11 04:19

### uboot

1. tar xvfj u-boot-1.1.6_20090819.tar.bz2 -C ./

2. cd u-boot-1.1.6

3. make EmbedSky_config

4. make

主要的配置选项都在 **include/configs/EmbedSky.h**中

然后会生成u-boot.bin等目标文件

### linux-kernel

1. tar xvfj linux-2.6.30.4_20090714.tar.bz2 -C ./        

2. cd linux-2.6.30.4

3. cp -f config_EmbedSky_W43  .config

4. make menuconfig

5. make zImage

然后会生成zImage.bin,copy一份

6. make modules

生成内核驱动模块的目标文件*.ko

### busy_box

1. tar xvfj busy_box-1.16.0_20090920.tar.bz2 -C ./

2. make menuconfig

3. 在"Load an Alternate Configuration File"选项中修改为config_EmbedSky

4. 在"Save Configuration to an Alternate File"中选择“OK”

5. Exit and "Yes"

6. make 

two errors ocurrs:

① miscutils/flash_eraseall.c:14:26: mtd/mtd-user.h: No such file or directory

解决:cp -a /usr/include/mtd ./include/mtd

② miscutils/ionice.c:16: error: `SYS_ioprio_set' undeclared (first use in this function)

解决:关闭相关配置,在make menuconfig中

Miscellaneous Utilities->

- 关闭 ionice

- 关闭 iotifyd

- 关闭 taskset

7. make install

安装刚刚编译好的busybox,在busybox源码更目录下会建立一个_install的目录,至于怎么使用参考移植pdf

----------------------------------------------------------------------------------------------------------------------------------------------------

#### 介绍制作简单文件系统

8. 在opt/EmbedSky目录下   mkdir root_2.6.30.4_test  新建一个目录

9. cd _install

10. cp -rf * ../../root_2.6.30.4_test/

11.  bin/ sbin/ usr/bin 目录下就是存放的可执行文件,对于自己生成的可执行文件,也应该放到这个对应目录下

### apps

1. tar xvjf app_20090714.tar.bz2 -C ./

以编译无线网卡的工具集为例

2. cd /wireless_tools.29

3. make clean

4. rm -rf __install

5. make

6. make install 

安装刚刚编译好的应用程序(对于某些应用程序不需要执行make install)

  在__install目录中

- /include 目录下时头文件

- /lib下是应用程序需要依赖的库文件

- /man 是帮助文件

- /sbin 是可执行文件

不是所有的应用程序都有这几个目录

7. 将 __install/sbin下的可执行文件copy到busybox编译视频中建立的文件系统/sbin目录中

8. 查看安装目录下lib/目录下有没有*.so*,如果有,需要将这些文件copy到文件系统的lib/目录下,应用程序在运行时需要调用这些库(属于动态库)

下面演示buttons应用程序

9. cd Buttons/

10. make clean   清除目标文件

11. make            生成可执行文件

12. 将buttons文件copy到文件系统的sbin/目录中

### build qtopia-2.2.0(该段和视频区别甚大)

1. tar xvfj  Qte_20090819.tar.bz2 -C ./

2. cd /opt/EmbedSky/Qte

3. tar xvfj qtopia-2.2.0.tar.bz2 -C ../../../                         //解压到当前目录,会出现x86-qtopia-2.2.0文件夹

4. tar xvfj konqueror.tar.bz2 -C ../../../

5. sudo ./x86-qtopia-2.2.0-konqueror_build                        //在执行这个前必须确认已安装 g++, 不然还需要执行   sudo apt-get install g++

出现错误信息:

checking for libz... configure: error: not found  

解决: sudo apt-get install libz-dev

尴尬的一幕出现了.....................

当再次执行sudo ./x86-qtopia-2.2.0-konqueror_build时,报如下错误:

checking for Qt... configure: error: Qt (>= Qt 2.2.2) (headers and libraries) not found

解决: 放弃,我安装的是2.2.0啊,这要求的是必须大于2.2.2版本。。。。。哎



原创粉丝点击