Ubuntu下编译dbgen然后生成数据

合集下载

Ubuntu编译安装Linux内核过程

Ubuntu编译安装Linux内核过程

Ubuntu编译安装Linux内核过程编译安装Linux内核是Ubuntu系统用户进行内核优化、定制和个性化的重要方式之一、本文将介绍Ubuntu编译安装Linux内核的过程,帮助用户完成编译安装。

## 1. 获取Linux内核源代码##2.安装必要的工具和依赖项在编译安装Linux内核之前,需要安装一些必要的工具和依赖项,以确保编译过程的顺利进行。

你可以通过以下命令来安装它们:```sudo apt updatesudo apt install build-essential libncurses-dev bison flex libssl-dev libelf-dev```##3.解压源代码```tar -xf linux-x.x.x.tar.xz```##4.进入源代码目录进入解压后的源代码目录:```cd linux-x.x.x```##5.配置内核在继续编译之前,需要对内核进行配置。

你可以使用以下命令打开配置窗口:```make menuconfig```这个命令会打开一个文本界面的配置窗口,你可以在其中选择和配置不同的内核选项。

根据你的需求进行自定义配置。

##6.编译内核完成内核配置后,可以执行以下命令来开始编译内核:```make -j4```这个命令中的“-j4”表示使用4个线程进行编译。

你可以根据你的系统硬件配置自定义线程数量。

编译内核的时间会根据你的系统配置和编译选项的不同而有所不同。

请耐心等待编译过程完成。

##7.安装内核完成编译后,可以执行以下命令来安装编译得到的内核:```sudo make modules_install install```这个命令将编译得到的内核模块和内核文件安装到系统中。

安装完成后,你需要更新系统的引导加载程序(grub)以使用新的内核。

##8.更新引导加载程序执行以下命令来更新引导加载程序(grub):```sudo update-grub```这个命令会自动检测并添加新安装的内核到引导菜单中。

ubuntu下编译驱动程序的准备

ubuntu下编译驱动程序的准备

ubuntu下编译驱动程序的准备ubuntu不带linux内核源码,需要自己下载安装。

1,查看自己的内核版本uname -r2,查看源内的内核源码类表apt-cache search linux-source3,下载安装内核源代码sudo apt-get install linux-source- //我选的是这一个,自己看着办吧4,等待........下载完成后,在/usr/src下会有一个文件名为linux-source-5,解压缩包tar jxvf linux-source- //看清自己的版本解压后会生成一个源代码目录/usr/src/linux-source-6,进入源码目录后,配置文件make oldconfig7,生成内核make8,疯狂等待,大约1个多小时9,编译模块make modules10,安装模块make modules_install大功告成!^_^下面说一下Makefile文件$(MAKE) -C $(KERNELDIR) M=$(PWD) modules_install #PWD当前工作目录的变量obj-m := hello.o#hello.o是你要生成的驱动,以后可以自己改KERNELDIR:=/lib/modules/#这里别抄,写成你自己的版本,这个目录执行了内核源码目录PWD:=$(shell pwd) #将当前工作目录赋值该PWD modules:$(MAKE) -C $(KERNELDIR) M=$(PWD) modulesmodules_install:下面是一个经典的Hello,world!例子自己make一下就行了。

#include <linux/init.h>#include <linux/module.h>MODULE_LICENSE("Dual BSD/GPL");static int hello_init(void){printk(KERN_ALERT "Hello, world!\n");return 0;}static void hello_exit(void){printk(KERN_ALERT"Goodbye, cruel world!\n");}module_init(hello_init);module_exit(hello_exit);本文是参考了网上多篇帖子而写的算不上什么原创。

如何编译一个内核 - Ubuntu方式

如何编译一个内核 - Ubuntu方式

如何编译一个内核- Ubuntu方式来源: ChinaUnix博客日期:2007.08.26 07:12(共有0条评论) 我要评论如何编译一个内核- Ubuntu方式日期:2006-11-21作者:赵珂译来自:每一个Linux发行版都有自己专门的工具去构建自定义的内核. 本文主要介绍在Ubuntu平台上编译内核, 如何从(也叫vanilla kernel)获得最新且未改动的内核源代码来构建一个自定义的内核, 这样你可以使用自己的内核而不是发行版的内核, 另外也介绍了如何给内核打补丁, 从而方便增加新的功能.下面的工作我都在Ubuntu 6.10 Server ("Edgy Eft")和Ubuntu 6.06 Desktop ("Dapper Drake")上经过了测试.我想首先要说的是文章中构建自定义内核的方式不是唯一的, 还有许多其它的方式, 这不过是我习惯的方式. 我不能保证使用后不会出现任何问题.1. 预备工作我推荐使用root用户执行下面所有的步骤. 如果你还没有创建root登陆口令, 请运行下面的命令:sudo passwd root然后, 以root身份登陆:su如果你想使用一般用户来替代root用户, 记住在本文所有命令前输入sudo, 比如当我运行apt-get update你需要运行下面的命令来替代, 等.sudo apt-get update1.1 Ubuntu 6.10上的/bin/sh ("Edgy Eft")在Ubuntu 6.10, /bin/sh缺省是一个链接到/bin/dash的字符链接. 当你编译软件源代码的时候,/bin/dash似乎还存在问题. 至少我已经遇到了一些问题. 所以我把/bin/sh链接到了/bin/bash.如果你使用Ubuntu 6.10, 现在你可以运行:rm -f /bin/shln -s /bin/bash /bin/sh2 安装必需的软件包(为内核编译做准备)首先我们升级软件(包)库:apt-get update然后我们安装所有需要的软件包:apt-get install kernel-package libncurses5-dev fakeroot wget bzip23 下载内核源代码接下来我们下载需要的内核到/usr/src目录(去网站下载你需要的内核版本, 比如. linux-2.6.18.1tar.bz2(你可以从这里下载所有的2.6内核:/pub/linux/kernel/v2.6/). 然后下载到/usr/src目录:cd /usr/srcwget /pub/linux/kernel/v2.6/linux-2.6.18.1.tar.bz2然后解压内核源代码, 创建一个指向内核源代码目录的linux字符链接:tar xjf linux-2.6.18.1.tar.bz2ln -s linux-2.6.18.1 linuxcd /usr/src/linux4 给内核源代码打补丁(可选)有时你的缺省内核不支持新买的设备, 你需要安装新的驱动. 或者你需要使用虚拟技术或其它高级的技术,而这些现有的内核都不支持. 这样情况下你需要给给内核源代码打补丁(当然补丁已经发布..)现在我们假设你已经下载需要的补丁(以下例子我叫它patch.bz2)到/usr/src. 运行下面的命令给内核源代码直接打上补丁(你的用户必须位于/usr/src/linux目录):bzip2 -dc /usr/src/patch.bz2 | patch -p1 --dry-runbzip2 -dc /usr/src/patch.bz2 | patch -p1第一个命令用于测试, 对内核没有任何影响. 如果没有显示错误, 你可以运行第二个命令给内核打补丁. 如果第一个命令有误, 请务继续的操作!你也能够通过内核的prepatches方式打补丁. 比如, 如果你需要一个功能, 而这个功能仅存在于2.6.19-rc4中,正式完整的内核版本仍没有发布, 而2已经发布. 你可以把这个补丁打到2.6.18的内核源代码中,但请不要达到2.6.18.1或2.6.18.2, 等. 这个规则在接下来的网页中注明:/patchtypes/pre.htmlprepatches等同于linux中的测试发行; 他们位于存档的测试目录中,我们可以使用patch(1)工具对上一个完整发行版(版本号分三部分)打补丁(例如, 2.6.12-rc4 prepatch只可以给2.6.11内核源代码打补丁, 而不是2.6.11.10.)所以如果你想编译2.6.19-rc4内核, 你必须在步骤3.1下载2.6.18(/pub/linux/kernel/v2.6/linux-2.6.18.tar.bz2)替代2.6.18.1内核源代码!下面是如何给2.6.18打上2.6.19-rc4补丁:cd /usr/srcwget /pub/linux/kernel/v2.6/testing/patch-2.6.19-rc4.bz2cd /usr/src/linuxbzip2 -dc /usr/src/patch-2.6.19-rc4.bz2 | patch -p1 --dry-runbzip2 -dc /usr/src/patch-2.6.19-rc4.bz2 | patch -p15. 配置内核使用当前工作内核的配置文件做为新内核配置文件的基础是一个很好的主意. 因此我们拷贝已存的配置文件到/usr/src/linux:cp /boot/config-`uname -r` ./.config然后运行make menuconfig然后我们看到内核的配置菜单. 移动绿色光标到Load an Alternate Configuration File 行后选择.config文件(包含了当前工作内核的配置)做为配置文件:然后浏览内核配置菜单, 选择你需要的功能. 完成配置后, 选择Exit, 回答下面的问题(Do you wish to save your new kernel configuration? 你希望保存新的内核配置吗?), 选择Yes:6 构建内核执行下面命令来构建内核:make-kpkg cleanfakeroot make-kpkg --initrd --append-to-version=-custom kernel_image kernel_headers在--append-to-version= 后面你可以写上任何字符串来区别内核版本, 但是必须以" - "符号开始而且后面不包括任何空格.保持耐心, 内核编译需要一定时间, 主要看你的内核配置和处理器速度.7 安装新内核在成功构建内核后, 你在/usr/src目录能发现两个.deb软件包.cd /usr/srcls -l在我的测试系统上, 他们分别名为linux-image-2.6.18.1-custom_2.6.18.1-custom-10.00.Custom_i386.deb(包含了实际的内核) 和linux-headers-2.6.18.1-custom_2.6.18.1-custom-10.00.Custom_i386.deb (包含了需要的文件, 用于以后需要编译额外的内核模块). 我是这样安装的:dpkg -i linux-image-2.6.18.1-custom_2.6.18.1-custom-10.00.Custom_i386.debdpkg -i linux-headers-2.6.18.1-custom_2.6.18.1-custom-10.00.Custom_i386.deb (现在你甚至能够拷贝这两个.deb文件到其它的Ubuntu系统, 通过上面的方式安装. 你将不再需要编译内核.)然后检查/boot/grub/menu.lst文件, 现在你将能发现新内核使用的两个引导配置块:vi /boot/grub/menu.lst在我测试系统上已经添加好的引导配置块是这样的:title Ubuntu, kernel 2.6.18.1-customroot (hd0,0)kernel /boot/vmlinuz-2.6.18.1-custom root=/dev/sda1 ro quiet splashinitrd /boot/initrd.img-2.6.18.1-customsavedefaultboottitle Ubuntu, kernel 2.6.18.1-custom (recovery mode)root (hd0,0)kernel /boot/vmlinuz-2.6.18.1-custom root=/dev/sda1 ro singleinitrd /boot/initrd.img-2.6.18.1-customboot现在重启系统:shutdown -r now如果一切进展顺利, 你的新内核正常工作. 你还可以通过运行下面命令来检查新内核是否运行:uname -r这将会显示如:2.6.18.1-custom如果系统没有起来, 重启一下, 你会看到:按ESC进入GRUB菜单:选择你以前的内核启动系统, 现在你能再次尝试编译新的工作内核. 不要忘记从/boot/grub/menu.1st文件中移去不需要的引导内核信息.================================================ ================================================ ======================================================= ================================================ ======================================================= ======另一篇================================================ ===================================================== ================================================ ======================================================= ================================================ =======编译Linux2.6 内核总结在X86, Ubuntu 上编译Linux2.6内核,总结如下:基础知识在介绍如何编译内核之前, 需要对内核相关概念有一定的了解. 关于Linux kernel的介绍浩如烟海, 这里只介绍系统中相关的目录, 文件及命令./boot/boot/vmlinuz- : 用于启动的压缩内核镜像, 它也就是/arch//boot中的压缩镜像. /boot/system.map- : 存储内核符号地址./boot/initrd.img- : 初始化RAM硬盘时, 用来存储挂载根文件系统所需的模块./boot/grub/menu.lst : grub的配置文件. (不同的发行版中它可能位于不同位置./lib/modules该目录包含了内核模块及其他文件. 注意, modules中一般会有多个目录: 系统自带的内核模块在这里, 你编译自己的内核模块后, 它们也会被安装到这里. 不同的目录由内核版本号来区分. 即modules里目录的名称是内核版本号. (使用$ uname -r 可知当前系统内核所用的模块位于哪个目录)./lib/modules//build储存为该版本的内核编译新模块所需的文件. 包括Makefile, .config, module.symVers(模块符号信息), 内核头文件(位于include/, include/asm/中)/lib/modules//kernel储存内核目标文件(以.ko为后缀). 它的目录组织和内核源代码中kernel的目录组织相同. /lib/modules//中:modules.alias : 模块别名定义. 模块加载工具使用它来加载相应的模块. modules.dep : 定义了模块间的依赖关系.modules.symbols : 指定符号属于哪个模块.这些文件都是文本文件, 可以查看它们.$ uname -runame(1)被用来查看系统信息, 这里对我们有用的是它的"-r"选项, 它显示内核版本信息. 下载内核, 验证签名, 解压缩到/pub/linux/kernel/下载最新版本的2.6内核. 速度还比较快. 这里以linux-2.6.17.13为例:1, 下载内核压缩包bzip2格式比gzip压缩效率更高, 一般就下载bz2的压缩包. 下载了内核压缩包之后, 还可下载对应的sign文件. 它被用来验证内核压缩文档的openPGP签名. 详细信息可参考这里.$ wget -c /pub/linux/kernel/v2.6/linux-2.6.17.13.tar.bz2 $ wget -c /pub/linux/kernel/v2.6/linux-2.6.17.13.tar.bz2.sign2, 验证签名首先从pgp的服务器获取签名公匙, linux内核包的公匙编号是0x517D0F0E. 再利用sign文件来验证.bz2压缩包的签名. 如果输出中有类似gpg: Good signature from "LinuxKernel Archives Verification Key " 的内容,说明该包是有效的. 后面给出的警告信息可以忽略.$ gpg --keyserver --recv-keys 0x517D0F0E$ gpg --verify linux-2.6.17.13.tar.bz2.sign linux-2.6.17.13.tar.bz2GPG签名只是保证镜像网站提供的压缩包和所提供的是相同的, 如果你在下载, 不需要验证签名.3, 解压缩解压缩之前, 有个问题值得思考: 要将压缩包解压到何处? 即要在哪个目录进行Linux内核源代码的编译?内核源码树的README中有这样一段话:Do NOT use the /usr/src/linux area! This area has a(usually incomplete) set of kernel headers that are used by the library header files. They should match the library, and not get messedup by whatever the kernel-du-jour happens to be.实际上, 在我的Ubuntu系统中, /usr/src/ 目录中最初是没有linux目录的. 你可以在/usr/src中新建一个目录,用内核版本命名, 比如/usr/src/linux-2.6.17.13. 这样, 即便之前在/usr/src中安装了linux的头文件,也不会对它们造成影响.我采用的方法是: 在/usr/local/src/kernel目录中进行.编译内核时候, 若在make 后添加"O="将会使生成的目标文件(包括.config)被放置到指定的目录. 否则, 生成的目标文件默认地被放到内核源码目录. 我们就采用默认的方法. 这是安全的.4, 打补丁对于中的内核, 我个人认为没必要下载patch, 再打补丁. 费那事干嘛, 直接下载bz2包不就行了. 特定的补丁只能针对紧随其前的一个版本. 比如你想从2.6.17.1升级到2.6.17.13. 你得打12次补丁, 忒麻烦了.但是, 有时候需要对"官方内核"添加补丁, 以支持特定的系统. 比如ARMLinux, 它往往不是发布完整的内核,而是发布针对特定版本的补丁包. 这种情况下就要知道如何打补丁了. 方法很简单: 把补丁下载, 解压.得到patch-. 将它放到解压后的内核目录树的父目录中(也就是补丁和内核目录在同一目录). 然后cd到内核目录树中运行:$ patch -p1配置内核1, 前提: 构建编译环境显然, 需要make, gcc等工具, 在Ubuntu中, 只需一条简单命令就可安装所有的源代码编译工具:# apt-get install build-essential当然, 如果你的内核是要安装到不同体系结构的目标系统中, 还需要构建cross编译环境. 2, 内核配置工具介绍Linux提供了多种内核配置工具, 最基础的是make config, 它列出每个编译选项, 而且是基于文本的, 一般不用它.menuconfig (make menuconfig)menuconfig是比较主流的配置工具, 它需要curse库的支持, 在Ubuntu中默认是没有的, 先安装它:# apt-get install libncurses5-devxconfig (make xconfig)xconfig基于X11, 使用qt库, 在Ubuntu中先安装qt库:# apt-get install libqt3-headers libqt3-mt-dev3, 内核配置相关.config配置文件在内核树的根目录中,有一个.config文件,它记录了内核的配置选项,可直接对它进行修改,再运行(若.config不存在,对内核进行配置后会生成它,这种情况下当然不能开始就运行oldconfig). 实际上, 如果你手头有合适的.config 文件, 可以运行make oldconfig 直接按 .config 的内容来配置$ sudo make oldconfig对内核的配置都是围绕 .config 来展开的. 即便开始 .config 文件不存在, 进行配置后会创造它.其实可以直接在menuconfig中加载已有的配置文件, 不要将它改名为.config. 否则完成配置, 退出menuconfig时会提示你运行make mrproper. 上面提到的方法只是比较适合于oldconfig!make相关命令$ make oldconfig : 基于已有的.config进行配置, 若有新的符号, 它将询问用户. $ make defconfig : 按默认选项对内核进行配置(386的默认配置是Linus做的).$ make allnoconfig : 除必须的选项外, 其它选项一律不选. (常用于嵌入式系统). $ make clean : 删除生成的目标文件, 往往用它来实现对驱动的重新编译.$ make mrproper : 删除包括.config在内的生成的目标文件.可以查看内核源码树中的README和Makefile了解上述配置方法.4, 开始配置1, 修改Makefile (可选)在Makefile中, 有这样的内容:VERSION = 2PATCHLEVEL = 6SUBLEVEL = 16EXTRAVERSION = .20NAME=Sliding Snow Leopard我们在编译内核之前, 可以先修改Makefile中的版本信息(一般是修改EXTRAVERSION, 比如EXTRAVERSION =-zp). 这样就能将自己编译的内核同别人编译的相同版本内核区分开来. 修改, 编译之后, 可使用$ uname -r 查看内核版本信息.但实际上, 从2.6.8的版本起可在内核版本号后面添加个性化字符串. 所以也就没有必要修改Makefile了: () Local version - append to kernel release如果你即修改了Makefile中的EXTRAVERSION, 又在配置时定义了local version. 那么local version所定义的字符串将位于末尾, 紧跟在EXTRAVERSION的值之后.另外, 如果要用到ccache, 也需要修改Makefile. 参考后面的内容!2, 准备一个.config文件.内核配置选项众多, 一个个去配置相当麻烦. 建议使用手头已有的配置文件. 如果你手头没有, 有多种方法获得它:(1) 使用make defconfig将在源码树的根目录得到.config.(2) 使用当前系统内核的配置文件, 一般位于/boot目录中. 它的名称并不是.config.(3) 使用别的发行版提供的配置文件(网上去下载).slackware的.config是个不错的起点. 在它的配置文件基础上作出适合自己系统的修改, 比较方便. 也可以拷贝发行版提供商的.config文件.3, 建议配置步骤:(1) 将配置文件(不要将它命名为.config!)拷贝到内核源码树根目录.(2) make menuconfig, 然后将上述的配置文件加载进去.(3) 配置完成后, 将生成的配置文件备份(.config, 也可以在menuconfig中指定生成的配置文件名).配置选项是最头疼的问题: 配置时候注意驱动的问题,尤其是网络驱动. 使用pppoe 的话, 要选上ppp 相关的选项. 网卡驱动也要注意, 我刚开始配置的时候, 只加上了lspci |grep Ethernet 对应的网卡, 但是重启后找不到eth0, 一怒之下, 把所有的1000M 网卡驱动都选为模块. 总算成功.以后有空仔细看看. 再就是声卡驱动也要注意.可参考我blog里另一篇文章:配置2.6内核选项注解也可以到Linux Kernel Configuration Archive看一看, 虽然它里面的内容与图形化配置工具中的help大同小异.编译内核配置完成后,就要进行编译了。

在Ubuntu上编译Android Gingerbread 2.3.1

在Ubuntu上编译Android Gingerbread 2.3.1
Ubuntu
Android Gingerbread 2.3.1
Ubuntu 10.04(32 )
Android 2.3.1
Android
[
]
个别个su里o个apt需tu里e个需nsta首首个错需t-部ore个错nup错个f首ex个速需son个错perf个首需速s里首-里ev个 首需速es里已-里ev个首需速wx错t项快官提-里ev个速u需首里-essent需a首个z需p个部ur首个首需速n部urses持-里ev个 z首需速开错-里ev个个
[ Android ]
别个验a项e个-面路错rep个命误pro部essor命个就pro部就部pu需nfo个|个w部个-首路个个
-j CPU make -j2( ) CPU
************************************************************
You are attempting to build on a 32-bit system.
repo Google Python Git
别个部里个~个 别个验项里需r个速需n个 别个部ur首个长ttp果就就an里ro需里官错需t官项erne首官or错就repo个此~就速需n就repo个 别个部长验o里个a天x个~就速需n就repo个个
repo ~/.bashrc
P源T由=别P源T由果~就速需n个 export个P源T由个个
out/target/product/generic
~/.bashrc export PATH=$PATH:/home/android/gingerbread/out/host/linux-x86/bin export ANDROID_PRODUCT_OUT=/home/android/gingerbread/out/target/product/generic source ~/.baserc emulator

ubuntu下编程指南

ubuntu下编程指南

ubuntu下gcc编程入门准备工作如果你还没装编译环境或自己不确定装没装,不妨先执行sudo apt-get install build-essential如果你需要编译Fortran 程序,那么还需要安装?gfortran(或g77)sudo apt-get install gfortran如果你已经了解一些?vim?的知识,而且想用它来编辑源代码,那么我们不妨装个完整版sudo apt-get install vim-full如果你不了解vim,选择gedit、kate或mousepad来编辑源代码就好了注意:本文可能会让你失望,如果你看完后有下列疑问的话:为什么要在终端输命令啊?GCC 是什么东西,怎么在菜单中找不到?GCC 不能有像VC 那样的窗口吗?……那么你真正想要了解的可能是anjuta,kdevelop,geany,code blocks,eclipse,neatbean 等?IDE 集成开发环境。

即使在这种情况下,由于GCC 是以上IDE 的后台的编译器,本文仍值得你稍作了解。

编译简单的C 程序C 语言经典的入门例子是?Hello World,下面是一示例代码:#include <stdio.h>intmain(void){printf("Hello, world!\n");return 0;}我们假定该代码存为文件‘hello.c’。

要用?gcc?编译该文件,使用下面的命令:$ gcc -Wall hello.c -o hello该命令将文件‘hello.c’中的代码编译为机器码并存储在可执行文件‘hello’中。

机器码的文件名是通过?-o?选项指定的。

该选项通常作为命令行中的最后一个参数。

如果被省略,输出文件默认为‘a.out’。

注意到如果当前目录中与可执行文件重名的文件已经存在,它将被复盖。

选项?-Wall?开启编译器几乎所有常用的警告──强烈建议你始终使用该选项。

dbus源码用交叉编译

dbus源码用交叉编译

dbus源码用交叉编译摘要:1.交叉编译的定义与作用2.DBus 源码的概述3.DBus 源码的交叉编译步骤4.交叉编译的优点与局限性5.总结正文:1.交叉编译的定义与作用交叉编译,是指在一种计算机体系结构下编译另一种计算机体系结构的程序。

这种编译方式可以使得程序在不同的硬件平台上运行,从而实现代码的可移植性和软件的通用性。

交叉编译在嵌入式系统、软件移植等领域有着广泛的应用。

2.DBus 源码的概述DBus 是一个基于数据库的消息总线,用于实现不同数据库系统之间的消息传递。

它采用C 语言编写,具有良好的可移植性和性能。

DBus 源码的结构主要包括以下几个部分:消息处理模块、数据库访问模块、消息队列管理和配置模块。

3.DBus 源码的交叉编译步骤为了实现DBus 在不同硬件平台上的运行,需要进行交叉编译。

具体步骤如下:(1) 准备交叉编译环境:首先,需要安装交叉编译工具链,包括交叉编译器、交叉汇编器、交叉链接器等。

(2) 获取DBus 源码:从DBus 的官方Git 仓库中获取源代码。

(3) 配置交叉编译选项:根据目标硬件平台的体系结构,为编译器和链接器设置相应的交叉编译选项。

(4) 编译DBus 源码:使用交叉编译器编译DBus 源码,生成目标文件。

(5) 链接目标文件:使用交叉链接器将目标文件链接成可执行文件。

(6) 测试交叉编译结果:在不同硬件平台上运行交叉编译得到的可执行文件,验证其功能和性能。

4.交叉编译的优点与局限性交叉编译的优点主要体现在以下几个方面:(1) 提高代码的可移植性:交叉编译可以使得程序在不同的硬件平台上运行,降低软件的耦合度,提高代码的可移植性。

(2) 减少开发和维护成本:交叉编译可以减少针对不同硬件平台的重复开发工作,降低软件的开发和维护成本。

(3) 提高软件的通用性:交叉编译可以使得软件在不同的硬件平台上运行,提高软件的通用性,方便用户的使用。

然而,交叉编译也存在一些局限性,如编译器和链接器可能存在不同的Bug,导致编译结果不稳定,需要进行多次调试和优化。

搭建Ubuntu下编译环境

搭建Ubuntu下编译环境

搭建Ubuntu下编译环境1. 安装Ubuntu。

2. 安装gcc方法一:sudoapt-get install build-essential安装完了可以执行gcc--version的命令来查看版本,输出如下:gcc(GCC)4.2.3(Ubuntu4.2.3-2ubuntu7)Copyright(C)2007FreeSoftwareFoundation,Inc.编译则使用Ubuntu gcc命令。

要往下学习首先就得熟悉gcc命令的用法。

Ubuntugcc命令提供了非常多的命令选项,但并不是所有都要熟悉,初学时掌握几个常用的就可以了,到后面再慢慢学习其它选项,免得因选项太多而打击了学习的信心。

一. 常用编译命令选项假设源程序文件名为test.c。

1. 无选项编译链接用法:#gcc test.c作用:将test.c预处理、汇编、编译并链接形成可执行文件。

这里未指定输出文件,默认输出为a.out。

2. 选项-o用法:#gcc test.c -otest作用:将test.c预处理、汇编、编译并链接形成可执行文件test。

-o选项用来指定输出文件的文件名。

3. 选项-E用法:#gcc -E test.c -otest.i作用:将test.c预处理输出test.i文件。

4. 选项-S用法:#gcc -S test.i作用:将预处理输出文件test.i汇编成test.s文件。

5. 选项-c用法:#gcc -c test.s作用:将汇编输出文件test.s编译输出test.o文件。

6. 无选项链接用法:#gcc test.o -otest作用:将编译输出文件test.o链接成最终可执行文件test。

7. 选项-O用法:#gcc -O1 test.c -otest作用:使用编译优化级别1编译程序。

级别为1~3,级别越大优化效果越好,但编译时间越长。

二. Ubuntu gcc多源文件的编译方法如果有多个源文件,基本上有两种编译方法:[假设有两个源文件为test.c和testfun.c]1. 多个文件一起编译用法:#gcc testfun.ctest.c -o test作用:将testfun.c和test.c分别编译后链接成test可执行文件。

ubuntu下载源码clang+llvm+lldb编译+安装

ubuntu下载源码clang+llvm+lldb编译+安装

ubuntu下载源码clang+llvm+lldb编译+安装【本⽂可能涉及到Ubuntu安装以下⼯具:】 A、g++ B、gcc C、make D、cmake E、clang(10.0.1)(必须) F、llvm(10.0.1)(必须) G、lldb(10.0.1)(可选) H、libcxx(10.0.1)(必须) I、libcxx abi(10.0.1)(必须) J、compiler-rt(可选)【⼼累】 我⽬前有两台虚拟机: A、Ubuntu【ubuntu-20.04.1-desktop-amd64.iso】, B、fedora【Fedora-Workstation-Live-x86_64-32-1.6.iso】。

A可以正常与物理机⽂件共享,但是缺乏开发环境;B可以⾮常⽅便的搭建开发环境,但是与物理机的⽂件共享存在问题(虚拟机设置了⽂件共享,但是虚拟机⽆法挂载,这是其⼀;⼿动挂载Windows10共享⽂件夹,各种出问题(语法,正确,密码正确,防⽕墙关了,....)还是⽆法使⽤mount cifs挂载,折腾了好久,终究选择放弃折腾)。

选择A搭建开发环境搭建。

【1、其他教程】 教程使⽤的是svn下载源码再编译安装,本⽂是直接从官⽹下载源码并安装,⾮svn, 为什么不⽤svn?1、⽬前, svn检出项⽬各种超时,⽆法完整下载源码;2、准备了T⼦,经测,没⽤。

【2、源码下载】 源码有这些: 我这⾥选择了:1 llvm-project monorepo source code (.sig)2 LLVM source code (.sig)3 Clang source code (.sig)4 compiler-rt source code (.sig)5 libc++ source code (.sig)6 libc++abi source code (.sig)7 LLDB Source code (.sig) 哦,忘了,还有【】,我下载了:【cmake-3.18.2-linux-x86_64.sh】 【为什么不直接在虚拟机使⽤命令安装?慢!慢!慢!这个步骤更是让⼈⼼累:物理机C下载上⾯所需的源码,慢的要死:预计需要好⼏个⼩时才能下载好,要不就是 IDM 下载到99%失败。

Ubuntu编译EqualX图解

Ubuntu编译EqualX图解

Ubuntu 编译 EqualX 图解1写在前面本文介绍了在 Ubuntu 下编译 EqualX 0.7.1 的过程。

如果您想使用旧版 deb 包的 EqualX 又已自定义安装 TeXLive ,或许本文第四节可以帮到您。

2安装和配置Qt在官网上下载Qt的安装程序,双击运行,如下图,在设置中选择gcc 64/32-bit和tools即可。

如下图,装好之后运行QtCreator,在工具=>选项=>构建与运行中检查相关项是否已配置好。

配置项目。

3安装pkg-config 和 libexempi-devsudo apt-get install pkg-config libexempi-dev另外敲make命令看看有没有,没有就装上。

Qt是使用pkg-config来引用函数库的,而关键是要读取到该库的 .pc 文件。

在Synaptic中查看libexempi-dev已安装的文件,找到 .pc 文件所在的pkgconfig目录。

命令行方式如下图:dpkg -L libexempi-dev |grep '\.pc'接着在项目=>构建环境里添加环境变量PKG_CONFIG_PATH=/usr/lib/x86_64-linux-gnu/pkgconfig以上方法我拿不准,我设的时候没经验,路径填错了,结果只得把.pc文件复制到Qt的相关目录,如下图。

到后来我做实验想验证环境变量法的时候,干掉.pc文件,也不设环境变量,却再也看不到报错了,每次都编译通过。

4安装 libgl1-mesa-devsudo apt-get download libgl1-mesa-dev这里要解决的错误提示是cannot find -lGL。

只装这一个包就够,但它依赖了很多包,如果您愿意多装几个库,那可以把上面的download换成install并跳到第5节。

我一开始用的也是 install ,不过我只复制了gl1的 .pc 文件。

在Ubuntu下建立交叉编译环境并编译UBoot和Linux内核

在Ubuntu下建立交叉编译环境并编译UBoot和Linux内核

在Ubuntu下建立交叉编译环境并编译UBoot和Linux内核luweixuan一、实验环境:Ubuntu 12.04 32位系统二、准备的软件包:(baremetal compiler toolchain)裸机交叉编译工具链软件,主要用来编译Uboot或者裸机环境下的应用程序。

其实质为:Sourcery CodeBench Lite 2012.09-63软件包。

下载地址:https:///GNUToolchain/package10928/public/arm-none-eabi/arm-2012.09-63-arm-none-eabi.bin(Linaro GCC),是基于开源代码的ARM V7A体系结构(ARM Cortex-A8 & Cortex-A9 processors)的系统开发工具链软件,用来编译Linux系统内核和运行于Linux系统下的应用程序。

下载地址:ftp:///outgoing/SoC_FPGA/ethernet_3.7/gcc-linaro-arm.tar.bz2(compiler toolchain for ARM GNU/Linux)基于ARM GNU/Linux下的交叉编译环境包,主要用来编译Linux系统内核和运行于Linux系统下的应用程序。

其实质为:Sourcery CodeBench Lite 2012.03-57 for ARM GNU/Linux软件包。

此软件包是可选安装的。

下载地址为:https:///GNUToolchain/package10382/public/arm-none-linux-gnu eabi/arm-2012.03-57-arm-none-linux-gnueabi.bin4.linux-socfpga-13.02-bin.tar.gz(socfpaga SD Card image)包含已经编译好的应用于CV5系统的SD卡启动镜像文件的包。

eigen库 ubuntu编译

eigen库 ubuntu编译

eigen库 ubuntu编译在Ubuntu上编译Eigen库,可以通过以下步骤进行:1. 安装依赖:首先,确保你的系统上安装了CMake和pkg-config。

在终端中运行以下命令来安装它们:```arduinosudo apt-get install cmake pkg-config```2. 获取源代码:从Eigen的官网下载最新版本的源代码。

解压下载的压缩文件。

3. 创建并进入构建目录:在终端中,创建一个新的目录用于构建Eigen,并进入该目录。

例如:```bashmkdir eigen-buildcd eigen-build```4. 配置和生成Makefile:使用CMake配置Eigen的构建系统。

运行以下命令:```luacmake ..```这将使用默认的CMake生成器来生成Makefile。

5. 编译Eigen:在构建目录中,运行以下命令来编译Eigen:```arduinomake```这将开始编译过程,可能需要一些时间来完成。

6. 安装Eigen:编译完成后,运行以下命令来安装Eigen:```sudo make install```这将把Eigen库安装到默认的安装目录中。

7. 验证安装:安装完成后,你可以通过编写一个简单的C++程序来验证Eigen是否正确安装。

例如,创建一个名为``的文件,并添加以下代码:```cppinclude <iostream>include <Eigen/Dense>int main() {Eigen::Vector3d v(, , );std::cout << "Vector: " << v << std::endl;return 0;}```保存文件后,在终端中编译和运行程序:```gog++ -o main -I/usr/local/include/eigen3 -lEigen3::Dense -lEigen3::Geometry -lEigen3::SimplicialLinearAlgebra -lEigen3::StdVector -lEigen3::ArrayCore -lEigen3::Array -lEigen3::Householder -lEigen3::Geometry娱乐室Eigen3::Cholesky -lEigen3::SVD -lEigen3::QR -lEigen3::NumericalDiff -lEigen3::Array迫使对 -lEigen3::Array迫使乘法 -lEigen3 Eigen3::FFTEigen3::InverseEigen3::SimplicialLinearAlgebraEigen3::SimplicialLinearAlgebra娱乐室Eigen3::HouseholderEigen3::Geometry娱乐室Eigen3::Geometry娱乐室Eigen3::Geometry 娱乐室Eigen3::Geometry娱乐室Eigen3::Geometry娱乐室Eigen3::Geometry娱乐室Eigen3::Geometry娱乐室Eigen3::Geometry 娱乐室Eigen3::Geometry娱乐室Eigen3::Geometry娱乐室Eigen3::Geometry娱乐室Eigen3::Geometry娱乐室Eigen3::Geometry 娱乐室Eigen3::Geometry娱乐室Eigen3::Geometry娱乐室Eigen3::Geometry娱乐室Eigen3::Geometry娱乐室Eigen3::Geometry 娱乐室Eigen3::Geometry娱乐室Eigen3::Geometry娱乐室Eigen3::Geometry娱乐室Eigen3::Geometry娱乐室Eigen3::Geometry 娱乐室Eigen3::Geometry娱乐室Eigen3::Geometry娱乐室Eigen3::Geometry娱乐室Eigen3::Geometry娱乐室Eigen3................................................... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .花费更多时间处理与版本有关的问题,请确保你已正确安装了与你的程序兼容的Eigen库版本。

genus set_db的用法

genus set_db的用法

genussetdb的用法`genussetdb`是一个R语言包,用于加载和操作基于数据库的遗传学数据。

该包可以加载一个或多个生物物种数据库,例如:GenusSetDB,AnimalDiversityWeb,AntWeb等。

它提供了方便的方法来检索和分析各种类型的数据,包括分类信息、生物统计数据、序列数据等。

下面是使用`genussetdb`包的基本步骤:1.安装和加载`genussetdb`包:```rinstall.packages("genussetdb")library(genussetdb)```2.加载数据库:```r#加载GenusSetDB数据库genussetdb::load("GenusSetDB")```3.查询物种信息:```r#查询物种名称species<-genussetdb::query("species","Homo sapiens")```4.查询分类信息:```r#查询分类等级taxon<-genussetdb::query("taxon","Primates")```5.查询生物统计数据:```r#查询物种数量统计信息stats<-genussetdb::query("stats","Primates")```6.查询序列数据:```r#查询基因序列数据sequences<-genussetdb::query("sequences","Primates")```7.导出数据:```r#将查询结果导出为CSV文件格式write.csv(sequences,file="Primates_sequences.csv")```以上是`genussetdb`包的基本用法,你可以根据具体需求进行进一步的数据分析和处理。

ubuntu内核编译

ubuntu内核编译

ubuntu内核编译Ubuntu下Linux3.9.1内核编译1,安装vmtools,参考⽹上教程2,设置⽂件共享。

在“虚拟机”点击“管理”,右侧有“共享”,将主机的⽬录指向⼀个已经共享的⽂件夹,在ubuntu的/mnt/hgfs可以见到共享的⽂件,考到主⽂件⽬录下随便建的⼀个⽬录www,也可以直接重启拖拽这是fedora⽅式的,Ubuntu也⼀样3,解压⽂件Tar: tar xvf XXXXX.tar.gz: gzip -d XXXX.gz.tar.gz tar zxvf XXXX.tar.gzBz2 bzip2 –d XXXX.bz2.tar.bz2 tar jxvf XXXX.tar.bz2注意⾃⼰内核的后缀名,否则会出现错误4编译Make mrproper //删除以前编译留下的临时⽂件安装编译环境Sudo apt-get updateApt-get install libncurses5-devApt-get install build-essential //编译⼯具Apt-get install kernel-package配置内核:make menuconfig可以直接save,exit直接⽣成.config⽂件。

开始编译;Make –j4编译的过程6、加⼊模块make modules_install7、⽣成可执⾏的内核引导⽂件make bzImage(i字母要⼤写)cp arch/i386/boot/bzImage /boot/vmlinuz-3.9.1 //将内核镜像⽂件复制到boot⽬录下8、将System.map复制到/boot下:cp System.map /boot/System.map-3.9.19、⽣成initrd.img⽂件cd /lib/modules/3.9.1 //会有所隐藏,可以⽤ls –a查看隐藏⽂件update-initramfs –c–k 3.9.110、⾃动查找新内核,并添加⾄grub引导:#update-grub2#update-grub12、重启系统#reboot重启后,进⼊终端使⽤uname –a命令可以看到内核编译的结果。

Ubuntu环境下使用npm编译从git上clone下来的前端(Javascript)项目

Ubuntu环境下使用npm编译从git上clone下来的前端(Javascript)项目

Ubuntu环境下使⽤npm编译从git上clone下来的前端(Javascript)项⽬⼀、更新Ubuntu软件源打开终端依次输⼊:1 $ sudo apt-get update23 $ sudo apt-get install -y python-software-properties software-properties-common45 $ sudo add-apt-repository ppa:chris-lea/node.js67 $ sudo apt-get update⼆、安装curlcurl是利⽤URL语法在命令⾏⽅式下⼯作的开源⽂件传输⼯具。

打开终端依次输⼊:1 $ sudo add-apt-repository ppa:costamagnagianfranco/ettercap-stable-backports23 $ sudo apt-get update45 $ sudo apt-get install curl安装成功后查看curl版本:1 $ curl --version三、添加PPA(Personal Package Archives)添加PPA:1 $ curl -sL https:///setup_8.x | sudo -E bash -四、安装Node.js和NPM(Node Package Manager)Node.js是⼀个基于Chrome V8引擎的JavaScript运⾏环境。

NPM是JavaScript世界的包管理⼯具,并且是Node.js平台的默认包管理⼯具。

安装Node.js:1 $ sudo apt-get install nodejs23 $ sudo apt-get install nodejs-legacy45 $ sudo apt-get install npm查看⼀下Node.js和NPM的版本:1 $ node -v2 v8.5.03 $ npm -v4 v5.3.0五、更新Node.js和NPM的版本如果Node.js不是最新版,则需要下载⼀个叫n的模块。

DBGen使用

DBGen使用

DBGen的功能是产生各种数据类型、各种数据分布的.txt文件或者数据库中的表。

如果所生成的数据要保存在数据库中,一定要安装ODBC。

当然,如果你在本机上安装了Sql Server,肯定不用安装ODBC了。

1.运行DBGen文件夹下的dbgen.exe,见到如下界面。

因分辨率问题,界面中的部分字没有显示完全。

2.下面分别介绍界面各部分的功能,介绍顺序如下图序号所示。

①Connect: DRIVER={SQL Server};UID=sa;PWD=abc;SERVER=(local);DATABASE=tempdb;说明:UID是登录sql server的用户名;PWD是密码。

如果sql server是安装在本地,那么SERVER=(local)不用更改,否则请将local改为服务器名。

DATABASE后面添加要建表的数据库名称。

(请确保该数据库存在)②Table中填的是在数据库中所建表的名称。

(该程序会自动建表,不需要在数据库中自己建表)③Field_Number中填写表的列数。

④Record_Number中填写要生成的记录数。

⑤如果选中Dest_File,表示所生成的数据保存在DBGen.txt文件中。

如果不在⑦处指定存储路径,默认情况下DBGen.txt会保存在dbgen.exe所在文件夹下。

⑥如果选中Dest_Odbc,表示所生成的数据会保存在①中的数据库②中的表里。

⑦点击保存按钮,可以将目前的设置和所要建的表的信息保存到某个位置。

⑧“另存为”按钮,保存的信息同⑦。

另外右上角有个Generate按钮,当你已经设计好表的内容之后,按下此按钮就会将产生的数据保存在.txt文件中或者数据库中。

在向数据库中插入数据时,默认用的是ODBC 3.0, 如果你机器上装的是ODBC 2.0,请将Old_Odb选中。

3.下面介绍如何设计表中各列的信息。

①Field_Name: 列名。

②Type:该列的数据类型。

ubbconfig文件的设置及编译

ubbconfig文件的设置及编译

ubbconfig文件的设置及编译1.1.1ubbconfig文件的设置及编译(1)服务端ubbconfig文件是和服务端的源码放在一起的,需要按实际情况进行修改的参数有:TLOGDEVICE、WSL中的IP及PORT 信息*MACHINES节本节需要增加TLOG(事务日志)的配置(稍后将详细说明如何创建TLOG)TLOGDEVICE="/arrayinf1/work/feebank/src/server/TLOG"TLOGNAME="TLOG"TLOGSIZE=1024*GROUPS节,要增加对数据库管理的操作OPENINFO 打开数据库的参数设置,可以指定数据库实例名,用户名,密码。

可以将密码写成明文,也可以写成暗文。

*SERVERS节需要配置监听的地址和端口WSL CLOPT=CLOPT="-A -- -n //192.168.218.20:3061 -m 20 -M 20 -x 5 -T 1"(此处IP和PORT要与客户端环境变量文件setenv.sh 中的WSNADDR的值一致)例:*MACHINESserver210 LMID=SITE1APPDIR="/arrayinf1/work/feebank/src/server "TUXCONFIG="/arrayinf1/work/feebank/src/server/tuxconfig "TUXDIR="/opt/bea/tuxedo8.1"TLOGDEVICE="/arrayinf1/work/feebank/src/server /TLOG"TLOGNAME="TLOG"TLOGSIZE=1024*GROUPSGROUP1 LMID=SITE1 GRPNO=1(明文形式:用户名username,密码password)OPENINFO="Oracle_XA:Oracle_XA+SqlNet=billdb+Acc=P/u sername/password+SesTm=120+M axCur=5+LogDir=."(暗文形式:用户名username,密码改为五个”*”号)OPENINFO="Oracle_XA:Oracle_XA+SqlNet=billdb+Acc=P/u sername/*****+SesTm=120+MaxCur =5+LogDir=."(两种形式选其中一种即可)TMSNAME="TMS_Ora8i" (即4.2.3节生成的TMS_Ora8i)TMSCOUNT=2WSL SRVID=90SRVGRP=WSGRPCLOPT="-A -- -n //192.168.218.210:3061 -m 20 -M 20 -x 5 -T 1"其中:SVC_GET_COUNT,SVC_GETCTRLDATA,SVC_GET_H2INFO,SVC_USER_VERIFY,这四个服务对应的GROUP的OPENINFO 所配置的数据库的实例名、用户名和密码应该与客户端建表脚本所刷的数据库的信息一致。

ubuntu源码编译,dpkg,apt安装原理及简单使用

ubuntu源码编译,dpkg,apt安装原理及简单使用

ubuntu源码编译,dpkg,apt安装原理及简单使用1. 源码编译(源码安装通常安装比较麻烦,特别是解决依赖经常会出现问题,但是通常编译可以获得该软件的最新版本)•源码:程序代码,写给人开的程序语言,但机器无法识别,所以无法执行;•编译程序:将程序代码转译成为机器能看得懂的语言,相当与翻译器;•可执行文件:经过编译程序变成二进制程序后机器可以识别的可执行二进制文件;而在整个编译的过程,又需要设置软件安装路径,确定链接库位置,检测库依赖关系是否满足,判断目标系统上是否有合适的编译环境等复杂的过程。

通常软件开发商都会写这样一个检测程序,来检测用户的操作环境,以及该操作环境是否满足开发商所需的其他功能,替我们完成上诉的复杂过程。

检测完毕后,就会主动新建一个Makefile的规则文件,而这个检测程序的名字通常为configure(下载完软件源码会在源码文件中找到)。

获取源码文件,解压后,cd进入源码文件目录,找到configure 程序,使用./configure建立Makefile文件(必须保证Makefile文件正确建立,如果建立不成功的话,查看错误,并依据错误提示,解决后再次建立Makefile文件,直到正确建立Makefile文件)成功生成 Makefile后我们只需要使用sudo make命令进行编译编译成功后,使用sudo make install进行安装软件不过源码安装的话,尽量将源码文件放在一个能找到的特定位置,一般的话Makefile也会提供uninstall,这样的话,当我们需要卸载软件时,可以到软件包中输入sudo make uninstall卸载软件。

也可以使用 ./configure --prefix='File Path'命令,将软件安装在File Path位置,这样可以方便删除。

关于configure的更多参数可以查看软件包中列如ReadMe文件或INSTALL文件,一般有参数设置说明。

Ubuntu环境编译安装PHP和Nginx的方法

Ubuntu环境编译安装PHP和Nginx的方法

Ubuntu环境编译安装PHP和Nginx的⽅法本⽂实例讲述了Ubuntu环境编译安装PHP和Nginx的⽅法。

分享给⼤家供⼤家参考,具体如下:编译安装nginx切换⽬录到⼯作⽂件夹:cd /usr/local/src下载pcre源代码并安装wget ftp:///pub/software/programming/pcre/pcre2-10.20.tar.gztar -zxvf pcre2-10.20.tar.gzmv ./pcre2-10.20.tar.gz ./pcrecd pcre./configure --prefix=/usr/local/pcremake && make install下载zlib源代码并安装wget /project/libpng/zlib/1.2.8/zlib-1.2.8.tar.gztar -zxvf zlib-1.2.8.tar.gzmv ./zlib-1.2.8.tar.gz ./zlibcd zlib./configure --prefix=/usr/local/zlibmake && make install下载nginx源代码并安装wget /download/nginx-1.8.1.tar.gztar -zxvf nginx-1.8.1.tar.gzcd nginx-1.8.1./configure --prefix=/usr/local/nginx --with-pcre=/usr/local/pcre --with-zlib=/usr/local/zlibmake && make install开机启动nginx添加/ect/init.d/nginx,并写⼊脚本#! /bin/bash# Description: Startup script for webserver on CentOS. cp it in /etc/init.d and# chkconfig --add nginx && chkconfig nginx on# then you can use server command control nginx## chkconfig: 2345 08 99# description: Starts, stops nginxset -ePATH=$PATH:/usr/local/nginx/sbin/DESC="nginx daemon"NAME=nginxDAEMON=/usr/local/nginx/sbin/$NAMECONFIGFILE=/usr/local/nginx/conf/nginx.confPIDFILE=/var/run/nginx.pidSCRIPTNAME=/etc/init.d/$NAME# Gracefully exit if the package has been removed.test -x $DAEMON || exit 0d_start() {$DAEMON -c $CONFIGFILE || echo -n " already running"}d_stop() {kill -QUIT `cat $PIDFILE` || echo -n " not running"}d_reload() {kill -HUP `cat $PIDFILE` || echo -n " can't reload"}case "$1" instart)echo -n "Starting $DESC: $NAME"d_startecho ".";;stop)echo -n "Stopping $DESC: $NAME"d_stopecho ".";;reload)echo -n "Reloading $DESC configuration..."d_reloadecho "reloaded.";;restart)echo -n "Restarting $DESC: $NAME"d_stopsleep 1d_startecho ".";;*)echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2exit 3;;esacexit 0chmod +x /etc/init.d/nginxchkconfig --add nginxchkconfig --level 2345 nginx onservice nginx start源码编译安装php5.6下载php源代码cd /usr/local/srcwget /get/php-5.6.24.tar.gz/from/this/mirrormv mirror php-5.6.24.tar.gztar -zxvf php-5.6.24.tar.gzcd php-5.6.24安装依赖的组件xml扩展apt-get install libxml2-devpng扩展apt-get install libpng12-devfreetype扩展apt-get -y install libfreetype6-devopenssl扩展apt-get install opensslapt-get install libcurl3-openssl-devjpeg扩展apt-get install libjpeg-dev编译语句⽣成配置⽂件./configure --prefix=/opt/php --with-config-file-path=/opt/php/lib --enable-mbstring --enable-ftp --with-gd --with-jpeg-dir=/usr --with-png-dir=/usr --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-openssl-dir=/usr --with-openssl --with-pdo-mysql=mysqlnd --with-pear 安装了依赖的组件以后,应该就不会报错,如果报错请安装缺少的组件,然后重新⽣成配置⽂件。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

How-to:Compile dbgen and generate data in Ubuntu 教程:在Ubuntu下编译dbgen然后生成数据
最近几天有一些同学询问我怎么在Ubuntu生成数据库作业的数据,现在我写了一个简单的教程,希望可以帮到大家。

首先声明,其实用Windows 7也可以,大家可以看TA给我们发的“关于TPC-H的一点理解.pdf”,里面就有一个链接教我们:/blog/1260749
本教程默认你已经安装了Ubuntu 11.10虚拟机,否则请看前一篇教程。

过程大致分两步,编译,然后使用编译好的程序生成数据(我好像说了句废话)。

1.首先,获取安装文件tpch_2_14_3.zip(找同学要或者加入至九516的家庭组,有共
享)。

解压到容易记忆的目录,这里我直接解压到D盘,方便讲解:
2.打开VirtualBox,启动Ubuntu:
3.点击右上角的,在搜索里面输入terminal,点击打开第一个图标

输入:
sudo apt-get install build-essential (安装编译所必需的软件)
提示输入密码,输入即可,然后提示我们是否继续执行,输入y,回车。

(Linux系统出于安全性考虑,不会显示你的输入,是正常现象!)
4.此时,由于我们的dbgen源代码是存储在物理磁盘的:D:\tpch_2_14_3\dbgen;所以需
要把文件共享过去给Ubuntu使用。

选择顶部菜单设备>分配数据空间:
点击,添加一个共享目录,把固定分配勾上:
5.点击确定后,回到虚拟机,再次打开terminal,或者继续使用刚才那个,输入:
sudo mkdir /media/sf (Linux的机制不会自动启用磁盘,需要执行mount操作。

这里首先创建一个目录,准备把tpch(刚才设置的数据空间)mount到/media/sf这里。

会提示输入密码:
继续输入:
sudo mount -t vboxsf tpch /media/sf (把tpch mount 到/media/sf)
此时,/media/sf即对应了物理磁盘的:D:\tpch_2_14_3
6.以下的操作因为TA给出了演示视频,所以简略带过。

在terminal继续输入:
cd /media/sf/dbgen (切换到/media/sf/dbgen目录)
gedit makefile.suite (使用文本编辑器gedit打开makefile.suite)
配置makefile.suite,另存为makefile:
保存后,退出gedit,返回terminal,输入:
make (编译)
完成编译。

接着可以输入:
./dbgen -s 0.01 -T L (运行当前目录的dbgen,数据规模使用0.01,方便演示,只生成lineitem表)
即可生成数据。

相关文档
最新文档