Binutils 配置选项简介
configure 参数
configure 参数在计算机领域中,configure是一个常用的命令,它用于配置软件包以便在特定的系统上进行编译和安装。
configure命令通常是由autotools工具链生成的,autotools是一套自动化构建工具,可以帮助开发者将软件包从源代码构建到二进制可执行文件。
configure参数是指在使用configure命令时可以传递给它的选项和参数,这些选项和参数可以影响软件包的编译、安装和运行。
configure参数主要分为三类:通用选项、编译选项和安装选项。
下面将详细介绍每个选项及其作用:1. 通用选项--help:显示帮助信息。
--version:显示软件包版本号。
--prefix=DIR:指定安装目录,默认为/usr/local。
--exec-prefix=DIR:指定可执行文件目录,默认为prefix目录。
--bindir=DIR:指定二进制文件目录,默认为exec-prefix/bin。
--sbindir=DIR:指定系统二进制文件目录,默认为exec-prefix/sbin。
--libdir=DIR:指定库文件目录,默认为prefix/lib。
--includedir=DIR:指定头文件目录,默认为prefix/include。
--datadir=DIR:指定数据文件目录,默认为prefix/share。
2. 编译选项--build=BUILD:指定编译系统类型,默认为当前系统类型。
--host=HOST:指定运行系统类型,默认为当前系统类型。
--target=TARGET:指定目标系统类型,默认为HOST。
--enable-feature:启用某个功能。
--disable-feature:禁用某个功能。
--with-PACKAGE[=ARG]:指定要使用的库或工具包,ARG表示库或工具包的路径。
--without-PACKAGE:禁用某个库或工具包。
3. 安装选项--disable-shared:禁用共享库,只编译静态库。
objdump 使用方法 -回复
objdump 使用方法-回复关于"objdump 使用方法"的文章,将详细介绍该工具的步骤和用法。
objdump是一个十分有用的命令行工具,它可以用于分析可执行文件和目标文件。
无论是在逆向工程、代码审计还是调试过程中,objdump都扮演着重要的角色,它可以帮助开发者理解和调试指令的执行流程,查看变量和符号表以及分析代码中的漏洞。
接下来,我们将详细介绍objdump 的使用方法。
第一步:安装objdumpobjdump是GNU Binutils软件包的一部分,因此你需要确保已经安装了Binutils。
在大多数Linux发行版中,Binutils默认安装。
如果没有安装,可以使用包管理器安装。
例如,在Ubuntu或Debian系统上,可以使用以下命令安装:sudo apt-get install binutils第二步:了解objdump的基本用法objdump这个命令有很多选项和参数,因此在使用之前,先了解一些基本的用法是很重要的。
可以通过以下命令来查看objdump的基本用法:objdump help这将显示所有可用的选项和参数。
在下面的步骤中,我们将介绍一些常用的选项。
第三步:查看可执行文件或目标文件的头部信息objdump可以用来查看一个可执行文件或目标文件的头部信息。
头部信息包含了关于文件类型、目标体系结构以及程序入口点等重要的信息。
可以使用以下命令来查看头部信息:objdump -f <file>其中,`<file>`是需要分析的可执行文件或目标文件。
第四步:反汇编代码objdump最常用的功能之一是反汇编代码。
通过反汇编代码,我们可以查看可执行文件或目标文件中的汇编指令。
下面的命令会将代码以汇编指令的形式输出:objdump -d <file>这将显示整个可执行文件或目标文件的汇编代码。
如果只想查看特定函数的汇编代码,可以使用以下命令:objdump -d <file> -j .text -M intel其中,`-j .text`表示只查看.text节的内容,`-M intel`表示以Intel格式显示汇编代码。
Buildroot用户指南
Buildroot用户指南第一章关于BuildrootBuildroot是一个包含Makefile和修补程序【patch】的集合,这个集合可以使你很容易的为你的目标构建交叉工具链【cross-compilationtoolchain】,根文件系统【root filesystem】以及Linux内核映像【kernelimage】。
Buildroot可以独立的实现其中的一个或几个功能。
Buildroot对于从事嵌入式系统【embeddedsystems】开发的人很有帮助。
通常嵌入式系统使用的处理器【processor】不同于在PC 跑的x86架构的CPU。
嵌入式系统可以使用IBM公司的PowerPC,可以是RISC指令的MIPS(包括龙芯II),也可以是ARM处理器,等等。
编译工具链【compilationtoolchain】是为你的操作系统编译程序的工具的集合。
主要包括编译器【compiler】(比如说gcc),包括汇编器【assembler】和链接器【linker】的二进制工具集【binaryutils】(在我们的Linux系统中通常为binutils[1]),C标准类库(比如GNU Libc[2]、uClibc[3] 或者dietlibc[4])。
你用来做开发的电脑上安装的OS通常已经包含一个默认的编译工具链,通过它便已出来的程序可以在你的系统上运行。
如果当你使用PC,你的编译工具链工作在x86架构的处理器上,产生的程序也是在x86处理器上使用的。
在大多数Linux系统中,交叉工具链采用GNU libc(glibc)[2]作为标准类库。
这种编译工具链通常被称为“主机编译工具链【"hostcompilation toolchain】”。
你用来做开发工作的电脑上跑的系统被称作“主机系统【hostsystem】”。
这个编译工具链由你的Linux发行版【distribution】的操作系统自带,而Buildroot 则于你的操作系统无关(但使用Buildroot建立的交叉工具链和其他工具可以在你的主机系统执行)。
Binutils与GCC配置选项简介
Binutils 配置选项简介(适用于2.17)要查看完整的配置选项,除了源码树根目录下运行"configure --help"查看外,还需要查看原码树的每个子目录下的README 文件,以及在每个子目录中运行"configure--help"查看[真麻烦!]。
下列选项皆为非默认值[特别说明的除外][提示]如果只想编译ld 可以使用"make all-ld",如果只想编译as 可以使用"make all-gas"。
--cache-file=FILE--help--no-create--quiet, --silent--version--prefix=PREFIX--exec-prefix=EPREFIX--bindir=DIR--sbindir=DIR--libexecdir=DIR--datadir=DIR--sysconfdir=DIR--sharedstatedir=DIR--localstatedir=DIR--libdir=DIR--includedir=DIR--oldincludedir=DIR--infodir=DIR--mandir=DIR--srcdir=DIR--program-prefix=PREFIX--program-suffix=SUFFIX--program-transform-name=PROGRAM--build=BUILD--host=HOST--target=TARGET这些选项的含义基本上通用于所有软件包,这里就不特别讲解了。
--enable-64-bit-bfd支持64位目标。
如果指定的目标是64位则此选项默认打开,否则默认关闭(即使--enable-targets=all 也是如此)。
要开启此选项,编译器必须支持64位整数(比如gcc)。
--enable-bfd-assembler简而言之,你不需要明确指定该选项,完全可以忽略它的存在,因此也就不需要理解它的含意。
Mac命令行中的文件权限和所有权管理技巧
Mac命令行中的文件权限和所有权管理技巧在Mac操作系统中,命令行是一个非常强大的工具,可以帮助我们进行各种任务,包括文件权限和所有权管理。
文件权限和所有权是指对于文件和目录的访问和控制权,对于用户来说,了解和掌握相应的管理技巧非常重要。
本文将介绍Mac命令行中的文件权限和所有权管理技巧,帮助读者更好地管理文件和目录。
一、文件权限的基本概念和使用方法文件权限指的是对于文件的访问和操作权限,包括读取、写入和执行权限。
在Mac中,可以通过命令行来设置文件的权限。
以下是文件权限常用的命令及其使用方法。
1. ls命令ls命令用于列出目录中的文件和子目录。
使用ls命令时,加上-l选项可以显示文件的详细信息,包括权限信息。
例如,输入以下命令:```ls -l```可以列出当前目录下的所有文件和子目录,并显示它们的详细信息,包括权限信息。
2. chmod命令chmod命令用于修改文件或目录的权限。
使用chmod命令时,需要指定权限的类型和要修改的目标文件或目录。
以下是chmod命令常用的权限类型及其对应的符号表示法:- r:读取权限,用“r”表示- w:写入权限,用“w”表示- x:执行权限,用“x”表示例如,要将文件file.txt的所有者的写入权限去掉,可以输入以下命令:```chmod u-w file.txt```其中,"u"表示所有者,"w"表示写入权限。
3. chown命令chown命令用于修改文件或目录的所有者。
使用chown命令时,需要指定新的所有者和要修改的目标文件或目录。
以下是chown命令的使用方法:```chown 新所有者文件或目录```例如,要将文件file.txt的所有者修改为"guest",可以输入以下命令:```chown guest file.txt```其中,"guest"为新的所有者。
二、常用的文件权限和所有权管理技巧除了基本的权限设置和所有者修改外,Mac命令行还提供了一些其他的文件权限和所有权管理技巧,可以更灵活地控制文件和目录的权限。
Chap嵌入式Linux应用程序开发
(3)拷贝BootLoader阶段2的代码到RAM空间中。
(4)设置好堆栈。
(5)跳转到阶段2的C程序入口点。
第15页/共30页
• BootLoader的阶段2通常用C语言来实现,这样可以实现更复杂的功能,而且代码会具有更好的可读性和 可移植性。通常包括以下步骤:
第3页/共30页
简单验证交叉编译工具
• 首先用文字输入软件建立一个helloworld.c文件: • #include <stdio.h> • int main(void) •{ • printf("hello world\n"); • return 0; •} • 然后在命令行执行: • $arm-linux-gcc helloworld.c -o helloworld • $file helloworld • 如果输出以下信息,说明成功建立了编译工具。 • helloworld: ELF 32-
系统移植实际上是一个最小系统的重建过 程。,在此使用目标平台上的二进制代码生成 这个最小系统。包括:init、libc库、驱动模块、 必需的应用程序和系统配置脚本。一旦这些工 作完成,移植工作就进入联调阶段了。
bit LSB executable, ARM, version 1, dynamically linke d (uses shared libs), not stripped
第4页/共30页
5.2 Linux及开发工具的使用
GNU工具的开发流程如下: 编写C、C++语言或汇编源程序,用gcc或g++生成目标文件, 编写链接脚本文件,用链接器生成最终目标文件(elf格式), 用二进制转换工具生成可下载的二进制代码。
Linux安装Oracle数据库安装
一、下载 Oracle 10g 先详细说明一下我的环境,系统:虚拟机 Red Hat Enterprise Linux AS 5.4,数据库: Oracle Database 10g Release 2 (10.2.0.1)。
Oracle 去官方网站下载,点击前往下 载。
我下载下来的文件是 10201_database_linux32.zip。
二、安装 Oracle 10g 前的配置 其实 Linux 下安装 Oracle 10g 并不难,主要就是安装前的配置有点烦琐罢了。
不过不要 怕,安装过一两次你就会熟练了。
开始了,Follow me! 1、安装 Oracle 所需软件包 先用 rpm -qa | grep 命令查询软件包是否安装了,没有的话再用 rpm -ivh 命令进行安 装。
# 从 Red Hat Enterprise Linux AS5 光盘 1 cd /media/cdrom/Serverrpm -ivh setarch-2* rpm -ivh make-3* rpm -ivh glibc-2* rpm -ivh libaio-0*# 从 Red Hat Enterprise Linux AS5 光盘 2 cd /media/cdrom/Serverrpm -ivh compat-libstdc++-33-3* rpm -ivh compat-gcc-34-3* rpm -ivh compat-gcc-34-c++-3* rpm -ivh gcc-4* rpm -ivh libXp-1*# 从 Red Hat Enterprise Linux AS5 光盘 3 cd /media/cdrom/Serverrpm -ivh openmotif-2* rpm -ivh compat-db-4*2、修改系统版本 vi /etc/redhat-releaseredhat-4 #Red Hat Enterprise Linux Server release 5.4 (Tikanga)因 为 oracle 的 官 方 只 支 持 到 RHEL4 为 止 , 所 以 要 修 改 版 本 说 明 。
objcopy --prefix-sections 用法
objcopy --prefix-sections 用法objcopy是GNU binutils软件包中的一个工具,用于将目标文件进行复制、转换和修改。
其中的prefixsections选项是objcopy工具的一个参数选项,用于在复制或转换时为所有节名添加前缀。
首先,让我们简要介绍一下什么是目标文件。
在编译源代码时,编译器将源代码转换为机器代码,生成的机器代码通常存储在目标文件中。
目标文件是一种中间文件,它包含了可执行文件或库文件最终生成所使用的信息。
在实际编程中,有时候我们可能需要对目标文件进行操作,如修改某些节或添加前缀以区分不同的节。
而objcopy工具就是为此目的而设计的。
那么,我们来详细了解一下prefixsections选项的使用方法。
首先,我们需要安装GNU binutils软件包。
根据不同的操作系统,可以通过不同的方式来安装。
在Linux上,我们可以使用包管理器进行安装,如在Ubuntu上可以使用以下命令安装:sudo apt-get install binutils安装完成后,我们就可以开始使用objcopy工具了。
下面是一些常用的objcopy命令示例:1. 复制目标文件:objcopy inputFile outputFile这将把inputFile复制到outputFile中。
2. 复制目标文件,并添加前缀至所有节名:objcopy prefixsections=prefix inputFile outputFile这将把inputFile复制到outputFile中,并为每个节名添加前缀prefix。
3. 复制目标文件,同时忽略某些节:objcopy remove-section=.sectionName inputFile outputFile这将把inputFile复制到outputFile中,并且忽略名为sectionName的节。
4. 复制目标文件,同时仅复制某些节:objcopy only-section=.sectionName inputFile outputFile这将把inputFile中名为sectionName的节复制到outputFile中。
基于PowerPC双核处理器嵌入式Linux系统开发
邮局订阅号:82-946360元/年技术创新博士论坛《PLC 技术应用200例》您的论文得到两院院士关注基于PowerPC 双核处理器嵌入式Linux 系统开发Development of Embedded Linux System for Dual_core Processor of PowerPC(中国科学院声学研究所)王长清蔡炜蔡惠智WANG Chang-qing CAI Wei CAI Hui-zhi摘要:针对我们自己开发的基于PowerPC 双核处理器MPC8641D 的信号处理与存储板,阐述了嵌入式Linux 系统软件开发,主要包括交叉开发环境建立、U-BOOT 移植、内核裁减与移植以及根文件系统定制,并对Serial Rapid IO 驱动程序,进行了简要的说明。
关键词:嵌入式Linux 系统;PowerPC;U-Boot 中图分类号:TP316文献标识码:BAbstract:In the paper,the pivotal technologies are described in implementation of embedded linux system for MPC8641D based on PowerPC,including cross development,configuration of target,modifying of U -Boot,porting the Linux kernel and root file system.The development of serial Rapid IO driver is discussed briefly.Key words:Embedded Linux System;MPC8641D;U-Bootl文章编号:1008-0570(2010)07-2-0005-031引言Linux 操作系统源码开放,遵循GPL 声明,其源代码可以从Linux 的相关网站下载。
NDK环境配置(包括最新版)及简单实用
如我的为NDK=/cygdrive/E/Android/android-ndk-r7b export NDK
注:"NDK"这个名字随便起,以后经常用别太长
②证
重启cygwin,输入:cd $NDK
可进入ndk对应目录说明设置OK。
生成项目中native方法,编译成so文件。
在eclipse中新建一个android项目,例如testNdk,最低适应版本选1.5以上,以为NDK支持的最低版本就是1.5,我这里选的2.1。
在项目中新建Jni类,示例代码如下:
publicclassJni {
publicnativeintshowRusult(inta,intb);
intaa= jni.showRusult(4, 87);
Log.v("test","aa: "+aa);
setTitle(jni.showRusult(5,8)+"");
}
将项目编译一下,让系统生成类的class文件,一会要用到。
4
打开Cygwin,进入项目的bin目录下,
如果之前已经编译过了,那系统应该已经在项目bin目录中生成了classes文件夹,进入这个文件夹。
输入命令$NDK/ndk-build,出现如下结果,说明编译成功。
现在可以看到,在sources/testNdk文件夹下,生成了libs、obj两个文件夹,将libs文件夹整个复制到android项目中即可。
二、使用
当然,首先需要搭建好android环境,包括SDK、ADT、eclipse等,具体方法我就不讲了,网上有很多。
buildroot 编译流程
buildroot 编译流程Buildroot是一个开源的构建系统,可以用于自动化编译嵌入式Linux系统。
本文将介绍Buildroot的编译流程,包括准备工作、配置选项、编译过程和结果验证。
1. 准备工作在开始编译之前,需要准备一些基本工具和环境。
首先,确保系统中已经安装了必要的软件,如gcc、make、binutils等。
其次,从Buildroot官网下载最新的稳定版本,并解压至本地目录。
2. 配置选项进入解压后的Buildroot目录,执行`make menuconfig`命令,进入配置界面。
Buildroot的配置选项非常丰富,可以根据实际需求进行选择和调整。
在配置界面中,可以设置目标硬件架构、文件系统类型、内核选项、软件包选择等。
根据实际情况,选择适合自己项目的配置选项,并保存配置文件。
3. 编译过程配置完成后,执行`make`命令开始编译。
Buildroot会根据配置文件下载所需的软件包,并进行编译和安装。
整个编译过程需要一定时间,可以利用这段时间去喝杯咖啡或做其他事情。
编译完成后,Buildroot会生成一个完整的嵌入式Linux系统,包括根文件系统、内核镜像和引导程序等。
4. 结果验证编译完成后,可以通过以下方式验证编译结果。
验证内核镜像是否生成成功。
将生成的内核镜像烧录到目标设备上,并通过串口输出查看启动信息。
如果能够正常启动并打印出系统信息,则内核镜像生成成功。
验证根文件系统是否生成成功。
将生成的根文件系统拷贝至目标设备上,并使用合适的启动方式启动系统。
如果能够进入系统,并且系统功能正常,则根文件系统生成成功。
验证软件包是否安装成功。
在目标设备上执行安装的软件包,并检查是否可以正常运行。
总结:以上就是Buildroot的编译流程。
通过准备工作、配置选项、编译过程和结果验证,可以快速、方便地构建嵌入式Linux系统。
Buildroot具有灵活的配置选项和丰富的软件包支持,可以根据实际需求进行定制化开发。
openwrt lede精简编译
openwrt lede精简编译
精简编译OpenWrt LEDE主要是为了减少固件的体积,去除一些不常用的功能和软件包,从而提高系统的运行效率和响应速度。
以下是精简编译OpenWrt LEDE的一些步骤:
1. 下载源码:首先从OpenWrt LEDE官方网站或者GitHub上下载最新的源码。
2. 配置编译环境:根据系统平台安装对应的编译环境,如GCC编译器、binutils、Git和patch等工具。
3. 选择配置选项:在源码目录中运行make menuconfig命令,进入配置菜单界面。
在这里可以选择需要的功能和软件包,并去除不需要的功能和软件包。
可以按需选择网络协议、交换机驱动、无线驱动、网络服务等。
4. 进行生成配置:保存配置后,可以生成配置文件,便于后续编译。
运行make defconfig命令生成.defconfig文件。
5. 开始编译:运行make命令开始编译固件。
建议使用多线程编译,可以使用make -j8命令。
6. 等待编译完成:根据电脑配置和源码大小,编译时间可能会有所不同,通常几十分钟到几个小时不等。
7. 提取固件:编译完成后,在源码目录的bin目录中可以找到生成的固件文件。
可以使用TFTP、Web等方法将固件烧录到
设备上。
需要注意的是,精简编译OpenWrt LEDE需要有一定的Linux 和编译知识,并且编译过程中可能会出现一些问题,需要根据具体情况进行调试。
建议在有经验的人指导下进行操作,以免造成不可逆的损坏。
LSISAS 9271 8iRAID配置管理
配置备份:定期备份配置信息以便恢复和审计
配置审计:定期检查配置信息确保符合安全规范和标准
硬件配置:包括服务器、存储设备、网络设备等
软件配置:操作系统、数据库、中间件等
配置文件:包括配置文件、日志文件、备份文件等
配置管理工具和技术
PRT FOUR
管理工具介绍
LSI MegRID WebBIOS:基于Web的管理界面用于配置和管理RID阵列
确定配置管理范围:明确配置管理的范围和边界
制定配置管理流程:确定配置管理的具体流程和步骤
确定配置管理目标:明确配置管理的目的和预期成果
制定配置管理策略:确定配置管理的具体策略和方法
配置项分类与组织
配置项识别与记录
识别配置项:确定需要管理的配置项如硬件、软件、网络等
备份配置项:定期备份配置项信息以防数据丢失或损坏
解决方案:检查RID控制器是否正常工作更新驱动程序重新配置RID阵列
解决方案:使用数据恢复软件尝试恢复数据定期备份数据使用RID冗余技术
解决方案:检查硬盘健康状况优化RID阵列配置升级硬件设备
解决方案:检查电源和硬件连接重新启动系统使用BIOS设置恢复RID阵列
问题三及解决方案
问题:RID阵列无法启动 解决方案:检查电源和硬件连接重新安装操作系统
LSI MegRID Srge Mnger:用于配置和管理RID阵列
LSI MegRID CLI:命令行界面用于配置和管理RID阵列
LSI MegRID SS 9271 8i:RID控制器支持SS和ST接口支持RID 0、1、5、6、10、50、60等RID级别。
技术实现方式
技术实现:RID 0、RID 1、RID 5、RID 6等
确定配置项属性:识别配置项的属性如版本、型号、规格等
bladebit 参数
Bladebit 参数1. 简介Bladebit 是一种用于比特币挖矿的软件,它采用了一种创新的挖矿算法。
本文将详细介绍 Bladebit 的参数设置,包括各个参数的含义和配置方法,以帮助用户更好地使用 Bladebit 进行挖矿。
2. Bladebit 参数列表在使用 Bladebit 进行挖矿时,可以通过修改配置文件中的参数来调整挖矿行为。
下面是 Bladebit 的一些常用参数:参数名类型默认值含义--threads整数 1 指定同时进行挖矿的线程数--address字符串无指定挖矿收益的接收地址--pool字符串无指定挖矿所连接的矿池地址--password 字符串无指定矿池连接密码--mode字符串“auto”指定挖矿的模式,可选值为“auto”、“solo” 和“pool”--log字符串“info”指定日志输出级别,可选值为“trace”、“debug”、“info”、“warn”、“error” 和“critical”--api整数4028 指定 API 服务监听的端口号--gpu字符串“auto”指定使用的 GPU 设备,可选值为“auto”、“none” 和“all”--opencl字符串“auto”指定使用的 OpenCL 平台,可选值为“auto”、“none”和“all”--cuda字符串“auto”指定使用的 CUDA 平台,可选值为“auto”、“none” 和“all”3. 参数详解3.1 --threads--threads参数用于指定同时进行挖矿的线程数。
默认值为 1,表示只使用一个线程进行挖矿。
增加线程数可以提高挖矿速度,但同时也会增加 CPU 和内存的占用。
3.2 --address--address参数用于指定挖矿收益的接收地址。
在挖矿成功后,挖矿收益将会发送到该地址。
用户需要将其替换为自己的比特币钱包地址。
3.3 --pool--pool参数用于指定挖矿所连接的矿池地址。
Mac命令行中的系统配置文件和参数管理技巧
Mac命令行中的系统配置文件和参数管理技巧Mac操作系统拥有强大的图形界面,但命令行仍然是许多高级用户和开发人员的首选工具。
通过命令行,用户可以更深入地了解系统,并具备更高级的系统配置能力。
本文将介绍Mac命令行中的系统配置文件和参数管理技巧,帮助读者更好地使用命令行进行系统配置。
一、系统配置文件1. .bash_profile:用户配置文件在Mac命令行中,用户的个性化配置可以通过修改.bash_profile文件来实现。
该文件位于用户主目录下(~/),用于存储用户自定义的环境变量、别名和其他命令行设置。
在终端中输入以下命令即可编辑.bash_profile文件:$ nano ~/.bash_profile修改完成后,按Ctrl+X保存并退出。
2. /etc/profile:系统级配置文件与.bash_profile文件不同,/etc/profile文件是系统级别的配置文件,适用于所有用户。
它包含了系统级别的环境变量和其他全局设置。
要编辑该文件,需要管理员权限。
在终端中输入以下命令即可:$ sudo nano /etc/profile编辑完成后,按Ctrl+X保存并退出。
二、参数管理技巧1. 查看参数帮助在命令行中,很多命令都有各种参数和选项。
要了解特定命令的参数及其用法,可以使用以下方法:$ command --help例如,要查看"ls"命令的帮助:$ ls --help2. 参数补全命令行中的参数补全功能可以极大地提高操作效率。
在输入命令或文件路径时,按下Tab键即可进行参数补全。
如果可能有多个选项或文件名,按两次Tab键会显示所有可用选项或文件名的列表。
例如,输入以下命令并按下Tab键:$ git co命令行会自动补全为:$ git commit3. 别名设置为常用命令设置别名可以简化输入,提高效率。
可以通过编辑.bash_profile文件来设置别名。
例如,要为"ls -l"命令设置别名:$ echo "alias ll='ls -l'" >> ~/.bash_profile保存并退出后,输入"ll"即可执行"ls -l"命令。
熟悉binutils工具集(完整版)
需要注意的是,这不是一篇教你如何进行 Linux 程序开发的文章,相反,这里假设了你了解一 些基本的 Linux 命令。同样地,这篇文章不会告诉你什么时候要用 GCC 进行编译,而什么时候又得 用 G++进行编译,更不会告诉你这些编译器的具体参数的意思是什么以及如何使用。对于这些信息, 你需要参考其它的文章或是书籍。
安装包下载完了以后,你需要再次运行 setup.exe,且这次选择“从本地安装”。在安装时,
2█
同样不要忘了选择安装 GCC 和 binutils。
熟悉 binutils 工具集
Glibc Binutils GCC 配置选项简介
Glibc Binutils GCC 配置选项简介作者:金步国版权声明本文作者是一位自由软件爱好者,所以本文虽然不是软件,但是本着 GPL 的精神发布。
任何人都可以自由使用、转载、复制和再分发,但必须保留作者署名,亦不得对声明中的任何条款作任何形式的修改,也不得附加任何其它条件。
您可以自由链接、下载、传播此文档,但前提是必须保证全文完整转载,包括完整的版权信息和作译者声明。
其他作品本文作者十分愿意与他人共享劳动成果,如果你对我的其他翻译作品或者技术文章有兴趣,可以在如下位置查看现有作品的列表:•金步国作品列表BUG报告,切磋与探讨由于作者水平有限,因此不能保证作品内容准确无误,请在阅读中自行鉴别。
如果你发现了作品中的错误,请您来信指出,哪怕是错别字也好,任何提高作品质量的建议我都将虚心接纳。
如果你愿意就作品中的相关内容与我进行进一步切磋与探讨,也欢迎你与我联系。
联系方式:MSN: csfrank122@Glibc 安装指南(适用于2.3/2.4/2.5/2.6/2.7)编译前的预备知识与要点提示Glibc-2.3.6 建议使用 GCC-4.0 编译,Glibc-2.4/2.5 建议使用 GCC-4.1 编译,Glibc-2.6/2.7 建议使用GCC-4.2 编译。
所有这些版本最低要求使用 GCC-3.4 编译。
编译 Glibc 时使用的内核头文件版本可以比实际运行 Glibc 的内核版本高。
如果实际运行的内核版本比头文件版本高,那么新内核的新特性将无法使用。
更多细节可以查看[八卦故事]内核头文件传奇的跟帖部分。
不要在运行中的系统上安装 Glibc,否则将会导致系统崩溃,至少应当将新 Glibc 安装到其他的单独目录,以保证不覆盖当前正在使用的 Glibc 。
Glibc 不能在源码目录中编译,它必须在一个额外分开的目录中编译。
这样在编译发生错误的时候,就可以删除整个编译目录重新开始。
在运行 configure 脚本时可以设置CC CFLAGS LDFLAGS 环境变量来优化编译。
binutils-2.21在Ubuntu10.10上的安装
binutils-2.21在Ubuntu10.10上的安装binutils-2.21在Ubuntu10.10上的安装1.下载binutils-2.21.tar.gz,拷贝到目录/opt/arm/build-tools/2.创建安装目录:mkdir /opt/arm/build-tools/build-binutils3.创建环境变量设置脚本build-env.sh(当然手动一行一行输入也可):export PRJROOT=/opt/armexport TARGET=arm-linuxexport PREFIX=${PRJROOT}/toolsexport TARGET_PREFIX=${PREFIX}/${TARGET}export PATH=${PREFIX}/bin:${PATH}4.设置环境变量:source build-env.sh5.进入build-binutils:运行../binutils-2.21/configure --target=${TARGET} --prefix=${PREFIX} --enable-shared6.生成Makefile后,运行make tooldir=/opt/arm/build-tools/build-binutils/;编译一会后会出现以下错误:......binutils missing terminating " character......网上解决方案:“老版本的glibc在/bin/sh为dash的时候会出现这个问题,一种解决方法是把/bin/sh重定向为bash,在创建完交叉编译器后可以将/bin/sh重新改回dash,运行如下面命令修改/bin/sh:rookiesean@rookiesan-laptop:~/workspace/crosstool-0.43$ cd /binrookiesean@rookiesan-laptop:/bin$ sudo mv /bin/sh sh.oldrookiesean@rookiesan-laptop:/bin$ sudo ln -sf bash /bin/sh ”按照以上做法解决了前面的错误。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Binutils 配置选项简介(适用于2.17)
来源: ChinaUnix博客日期:2009.02.06 15:25(共有0条评论) 我要评论
要查看完整的配置选项,除了源码树根目录下运行"configure --help"查看外,还需要查看原码树的每个子目录下的README 文件,以及在每个子目录中运行"configure --help"查看[真麻烦!]。
下列选项皆为非默认值[特别说明的除外]
[提示]如果只想编译ld 可以使用"make all-ld",如果只想编译as 可以使用"make all-gas"。
--cache-file=FILE
--help
--no-create
--quiet, --silent
--version
--prefix=PREFIX
--exec-prefix=EPREFIX
--bindir=DIR
--sbindir=DIR
--libexecdir=DIR
--datadir=DIR
--sysconfdir=DIR
--sharedstatedir=DIR
--localstatedir=DIR
--libdir=DIR
--includedir=DIR
--oldincludedir=DIR
--infodir=DIR
--mandir=DIR
--srcdir=DIR
--program-prefix=PREFIX
--program-suffix=SUFFIX
--program-transform-name=PROGRAM
--build=BUILD
--host=HOST
--target=TARGET
这些选项的含义基本上通用于所有软件包,这里就不特别讲解了。
--enable-64-bit-bfd
支持64位目标。
如果指定的目标是64位则此选项默认打开,否则默认关闭(即使
--enable-targets=all 也是如此)。
要开启此选项,编译器必须支持64位整数(比如gcc)。
--enable-bfd-assembler
简而言之,你不需要明确指定该选项,完全可以忽略它的存在,因此也就不需要理解它的含意。
--enable-install-libbfd
允许安装libbfd 以及相关的头文件(二进制文件描述库,用于读写目标文件".o",被GDB/ld/as等程序使用)。
--enable-commonbfdlib
编译共享版本的BFD/opcodes/libiberty 库。
--enable-install-libiberty
安装libiberty的头文件(libiberty.h),许多程序都会用到这个库中的函数
(getopt,strerror,strtol,strtoul)。
--enable-shared[=PKGS]
将指定的PKGS(逗号分隔的列表)编译为共享库,目前仅可使用:bfd,opcodes 。
此选项在不同子目录下默认值不同,有些为"yes"有些为"no"。
--enable-static[=PKGS]
将指定的PKGS(逗号分隔的列表)编译为静态库,目前仅可使用:bfd,opcodes 。
所有子目录下默认值皆为"yes"。
--enable-targets=TARGET,TARGET,TARGET...
使其BFD在默认格式之外再支持多种其它平台的二进制文件格式,"all"表示所有已知平台。
在32位系统上,即使使用"all"也只能支持所有32位目
标,除非同时使用--enable-64-bit-bfd 选项。
由于目前 gas
并不能使用内置的默认平台之外的其它目标,因此这个选项没什么实际意义。
--enable-serial-[{host,target,build}-]configure
强制为host, target, build 顺序配置子包,如果使用"all"则表示所有子包。
--with-build-subdir=SUBDIR
为build 在SUBDIR 子目录中进行配置(用于交叉编译)
--with-target-subdir=SUBDIR
为target 在SUBDIR 子目录中进行配置(用于交叉编译)
--with-cross-host=HOST
用于配置交叉编译器
--with-build-sysroot=sysroot
在编译时将'sysroot'当作系统根目录看待
--with-build-time-tools=path
在编译过程中使用给定的path 寻找target tools
--with-newlib
Configuring with newlib
--with-lib-path=dir1:dir2...
指定不同于默认目录的库搜索路径,这个工作也可以通过设置Makefile 中的LIB_PATH 变量值或使用这个选项完成。
如果你想要做一个交叉连接器,那么可能需要用-l 指定不同于默认目录的库搜索路径。
--enable-build-warnings
允许显示编译时的编译器警告
--enable-werror
使用-Werror 来将所有编译器警告当作错误来看待。
--enable-dependency-tracking
启用常规的依赖性追踪(指的是Makefile规则),允许多次编译。
默认禁止依赖性追踪,这样可以加速一次性编译。
--enable-maintainer-mode
启用无用的make 规则和依赖性(它们有时会导致混淆)
--disable-fast-install
禁止为快速安装而进行优化。
--enable-bootstrap
本地编译时默认打开,交叉编译时默认关闭。
建议不要明确指定,否则可能会出现配置错误。
--enable-cgen-maint=dir
编译cgen 相关的文件[主要用于GDB调试]。
--enable-libada
编译libada 目录
--enable-libgcc-math
编译libgcc-math 目录
--enable-libssp
编译libssp 目录
--disable-libtool-lock
禁止libtool 锁定以加快编译速度(可能会导致并行编译的失败)
--disable-nls
禁用本地语言支持(默认为启用)。
编译时出现"undefined reference to 'libintl_gettext'"错误则必须禁用。
--enable-secureplt
默认创建只读的plt 项[建议不要明确设置]。
使用mmap 访问文件,某些平台上速度较快,某些平台上速度较慢,某些平台上无法正常工作。
建议不要明确指定。
--with-datarootdir
将datarootdir 用作数据根目录
--with-gnu-ld
明确告诉编译器使用的连接器是GNU ld ,默认为未指定。
--with-docdir
将文档安装在该目录中
--with-htmldir
将html文档安装在该目录中
--with-included-gettext
使用软件包中自带的GNU gettext 库
--with-gmp=PATH
指定GMP 库的安装目录
--with-gmp-dir=PATH
指定GMP 库的源代码目录
--with-mpfr=PATH
指定MPFR 库的安装目录
--with-mpfr-dir=PATH
指定MPFR 库的源代码目录
--x-includes=DIR
指定X 的包含文件所在目录
--x-libraries=DIR
指定X 的库文件所在目录
--with-pic
试图仅使用PIC 或non-PIC 对象,默认两者都使用[建议不要明确指定]。