Ⅰ [讨论]ELF文件是用什么软件编写/编译的可以做到自行开发ELF程序吗
gcc 自己搜索吧ps2dev
Ⅱ 编译内核出现a.elf 是什么情况
正确的步骤是;
yum -y install make automake gcc g++ ncurses ncurses-dev ncurses-devel fakeroot wget bzip2 make patch ftp
cp /boot/config-2.6.18-92.el5 .config
关闭Selinux
vi /etc/sysconfig/selinux
SELINUX=disabled
打IMQ补丁:
$patch -p1 < ../linux-2.6.25-imq5.diff
$make menuconfig
驱动模块
IMQ (intermediate queueing device) support (IMQ)
Location:
-> Device Drivers
-> Networking support
-> Network device support (NETDEVICES)
-> IMQ (intermediate queueing device) support (IMQ)
2.2编译并安装新内核
make menuconfig
make
make moles
make moles_install
make install
mkinitrd /boot/initrd_2.6.30.img 2.6.30 根据内核版本和指定参数生成映像文件
cp arch/x86/boot/bzImage /boot/vmlinuz-2.6.30
cp /usr/src/linux-2.6.30/System.map /boot/System.map-2.6.30
Ⅲ 有关elf ,c语言编程,电子词典
ELF(Executable and Linking Format)是可执行连接格式
可执行连接格式是UNIX系统实验室(USL)作为应用程序二进制接口
(Application Binary Interface(ABI)而开发和发布的。工具接口标准委
员会(TIS)选择了正在发展中的ELF标准作为工作在32位INTEL体系上不同操
作系统之间可移植的二进制文件格式。
用linux的gcc编译器就可以生成elf文件
金山词霸里的*.dic文件是词典文件 ,估计6188也是
不过格式应该不一样的
dic估计是dictionary
Ⅳ 如何把shell脚本编程elf文件
Linux ELF ELF = Executable and Linkable Format,可执行连接格式,是UNIX系统实验室(USL)作为应用程序二进制接口(Application Binary Interface,ABI)而开发和发布的。扩展名为elf。工具接口标准委员会(TIS)选择了正在发展中的ELF标准作为工作在32位INTEL体系上不同操作系统之间可移植的二进制文件格式。假定开发者定义了一个二进制接口集合,ELF标准用它来支持流线型的软件发展。应该减少不同执行接口的数量。因此可以减少重新编程重新编译的代码。编辑本段文件格式
Ⅳ Uboot编译为什么没有生成elf格式的文件
1、通过gcc编译出来的是elf文件
2、通过objcpy可以把elf文件转换为bin文件
CC=ppc-gcc
LD=ppc-ld
OBJCOPY=ppc-obj
$(CC)-g$(CFLAG)-cboot.S
#先将boot.S文件生成boot.o
$(LD)-g-Bstatic-T$(LDFILE)
-Ttext0x12345600boot.o
--start-group-Mapboot.map-oboot.elf
#再将boot.o生成boot.elf
$(OBJCOPY)-Obinary-R.note-R.comment-Sboot.elfboot.bin
#接着将boot.elf转换为boot.bin
#使用-Obinary(或--out-target=binary)输出为原始的二进制文件
#使用-R.note(或--remove-section)输出文件中不要.note这个section,缩小了文件尺寸
#使用-S(或--strip-all)输出文件中不要重定位信息和符号信息,缩小了文件尺寸
Ⅵ eclipse编译完了只输出elf文件没有hex文件
你先得在工程属性里配置输出hex文件,才能在Debug/Release文件夹下找到对应工程名的hex文件
右击工程名,属性->C/C++ Build->IAR Linker for ARM->Output Converter->勾选Generate additional output,并在output format下拉框里选择Intel extended
Ⅶ 如何把.elf格式的文件编译成uimage格式
在终端中输入 gcc 文件名 -o 目标文件名 然后 ./目标文件名 就行了,没有目标文件名,自动存为 a 执行 ./a 就行了。 在使用Gcc编译器的时候,我们必须给出一系列必要的调用参数和文件名称。GCC编译器的调用参数大约有100多个,其中多数参数我们
Ⅷ 请问如何查看一个elf文件的编译参数
我尝试过使用readelf,没有从输出信息中发现我想要的
Ⅸ ELF文件 编译时间
具体如下:
ELF文件格式提供了两种不同的视角,在汇编器和链接器看来,ELF文件是由Section Header Table描述的一系列Section的集合,而执行一个ELF文件时,在加载器(Loader)看来它是由Program Header Table描述的一系列Segment的集合。
目标文件再不同的系统或平台上具有不同的命名格式,在Unix和X86-64 Linux上称为ELF(Executable and Linkable Format, ELF)。
Ⅹ 求从交叉编译器生成的elf文件中读取全局变量信息的函数
楼主,这个恐怕不是一个函数能解决的,ELF文件格式还是有点复杂的。 我以前做过类似的功能,从ELF文件中加载所有符号表信息,字符串信息,并下载代码。 我推荐你用一个开源的库:ELFIO。 我想这个库应该可以实现你的功能,只是你要去研究一下它的用法。 当然,你得首先对ELF文件格式有所了解。ELFIO库下载地址: http://sourceforge.net/projects/elfio/ ================================这是我以前写过的加载ELF中所有Section信息的例子: BOOL LoadELF(char* pFilename)
{
CString strName,tmp;
IELFI* pReader;
if ( ERR_ELFIO_NO_ERROR != ELFIO::GetInstance()->CreateELFI( &pReader ) ) {
Msg( "Can't create ELF reader.\r\n",2,0);
return FALSE;
}
if ( ERR_ELFIO_NO_ERROR != pReader->Load(pFilename ) ) {
Msg( "Can't open input elf file.\r\n",2,0);
return FALSE;
} int nSecNo = pReader->GetSectionsNum();
for (int i = 0; i < nSecNo; i++ )
{ // For all sections
const IELFISection* pSec = pReader->GetSection( i );
printf("%s\n",pSec->GetName().c_str());
Elf32_Half index= pSec->GetIndex() ;
std::string name = pSec->GetName() ;
Elf32_Word type =pSec->GetType() ;
Elf32_Addr addr = pSec->GetAddress() ;
Elf32_Word size = pSec->GetSize() ;
Elf32_Word link = pSec->GetLink() ;
Elf32_Word info = pSec->GetInfo() ;
Elf32_Word aa = pSec->GetAddrAlign() ;
Elf32_Word esize = pSec->GetEntrySize() ;
const char* p = pSec->GetData() ;
Elf32_Word flag = pSec->GetFlags() ;
strName = pSec->GetName().c_str();strName.MakeUpper();
//如果未指定section,读取所有SHF_EXECINSTR属性的Section
if(g_MapScetion.GetCount()==0)
{
if(flag&SHF_EXECINSTR)
LoadElfSection((BYTE*)pSec->GetData(),pSec->GetAddress(),pSec->GetSize(),pList,pAddInfo);
}
else
{
if(g_MapScetion.Lookup(strName,tmp))
LoadElfSection((BYTE*)pSec->GetData(),pSec->GetAddress(),pSec->GetSize(),pList,pAddInfo);
}
pSec->Release();
} pReader->Release();
return TRUE;
}