relocation相关内容

搬迁的概念是什么意思?

我是组装新手,因此想更多地了解搬迁的概念. 为什么我们需要重新定位程序、数据? 具体是怎么做的? 如果有人能用初学者级别的例子来解释,那就太好了. 解决方案 汇编器有一个源文件可以查看.它必须基于该源文件构建内存映像.所以它以 0 开头的代码,也以 0 开头的数据.结果进入目标文件. 现在,链接器出现了,它需要将许多目标文件组合成一个可执行文件(或内核映像,或其他).它 ..
发布时间:2022-01-11 15:33:57 其他开发

R_X86_64_32S 和 R_X86_64_64 重定位是什么意思?

尝试在 64 位 FreeBSD 中编译 C 应用程序时出现以下错误: relocation R_X86_64_32S 制作共享对象时不能使用;用 -fPIC 重新编译 什么是R_X86_64_32S重定位,什么是R_X86_64_64? 我已经用谷歌搜索了这个错误,这可能是原因 - 如果有人能说出 R_X86_64_32S 的真正含义,那就太好了. 解决方案 R_X86 ..
发布时间:2022-01-11 14:49:41 其他开发

x86-64 Linux 中不再允许 32 位绝对地址?

64 位 Linux 默认使用小内存模型,将所有代码和静态数据置于 2GB 地址限制以下.这确保您可以使用 32 位绝对地址.旧版本的 gcc 对静态数组使用 32 位绝对地址,以便为相对地址计算节省额外的指令.但是,这不再有效.如果我尝试在汇编中创建 32 位绝对地址,则会出现链接器错误:“创建共享对象时不能使用针对‘.data’的重定位 R_X86_64_32S;使用 -fPIC 重新编译". ..
发布时间:2021-12-03 12:40:33 服务器开发

带有可重定位代码的静态局部变量的问题

我正在构建一个在裸机上具有可重定位代码的项目.它是 Cortex M3 嵌入式应用程序.我没有动态链接器,并且在我的启动代码中实现了所有重定位. 大多数情况下它都在工作,但我的本地静态变量似乎定位不正确.它们的地址被我的可执行文件在内存中的偏移量所抵消——即我编译我的代码就好像它是在内存位置 0 处加载的,但我实际上将它加载到位于 0x8000 的内存中.静态局部变量的内存地址偏移了 0x8 ..
发布时间:2021-11-17 22:28:39 其他开发

如何为裸机臂应用程序编写动态加载程序

我正在开发一个基于 arm9 处理器的项目.我们只使用没有任何操作系统的裸机,所以很遗憾我们还不支持共享库/动态加载器. 我希望能够从例如 SD 卡加载库,这也可以从主应用程序调用函数. 我的第一次尝试是使用链接器覆盖功能(将库放置在特定的绝对定位部分),但是正如我之前提到的,调用主应用程序函数存在问题 -> 随着主应用程序的每次更改,库必须重新编译才能回调. 根据这一点,我将不 ..
发布时间:2021-11-17 22:06:07 其他开发

如何为裸机臂应用程序编写动态加载程序

我正在开发一个基于 arm9 处理器的项目.我们只使用没有任何操作系统的裸机,所以很遗憾我们还不支持共享库/动态加载器. 我希望能够从例如 SD 卡加载库,这也可以从主应用程序调用函数. 我的第一次尝试是使用链接器覆盖功能(将库放置在特定的绝对定位部分),但是正如我之前提到的,调用主应用程序函数存在问题 -> 随着主应用程序的每次更改,库必须重新编译才能回调. 根据这一点,我将不 ..
发布时间:2021-07-23 20:18:29 其他开发

迁移后,Wordpress一直重定向到install-php

这是我的情况.我已按照Wordpress Codex页面上有关将站点移至另一台服务器的确切说明进行操作.这是我采取的步骤. 导出我的数据库副本 在新服务器中创建新数据库 导入我之前导出的数据库 通过ftp上传我的Wordpress文件的副本 使用此脚本来更改我所有的本地网址到新人的 根据新服务器对wp-config.php文件进行更改(我没有忘记表前缀.尽管其中包含一些大写字符) ..
发布时间:2021-05-16 19:00:41 其他开发

ELF搬迁逆向工程

我希望你们能帮助我理解重定位条目和ELF部分数据之间的关系,以及所有这些如何处理和生成. 我有一个古老的不受支持的工具,该工具需要一个ELF文件和一个相关的PLF文件(部分链接文件,在构建过程的早期生成),并根据该文件构建一个可自定义的可重定位文件,该文件可以在平台(PPC)上使用紧密内存限制.除包含大约一小段我们要在启动后卸载的初始化代码外,此方法工作正常.因此,我们将所有init代码放入 ..
发布时间:2020-07-05 21:21:43 其他开发

ld-linux动态链接器/解释器的相对可执行路径

我想运送和归档二进制文件(带有库的可执行文件),这些二进制文件应尽可能地与Linux发行版本向后和向前兼容,并且整个软件包都可重定位. 据我了解,像libc这样的系统库也需要交付,因为在libc的其他版本下,可执行文件将崩溃.同时libc似乎与ld-linux耦合 (例如,在Debian测试中编译的二进制文件已经无法在Ubuntu 18.04 LTS上运行),因此我也需要打包ld-linux. ..
发布时间:2020-07-05 21:21:40 服务器开发

Cmake:将子项目目标导出到主项目

我目前有一个名为 LIBS 的项目,其结构如下: ├── Lib1 │ ├── CMakeLists.txt │ ├── lib1-class.cpp │ └── lib1-class.h ├── lib2 │ └── CMakeLists.txt │ ├── lib2-class.cpp │ ├── lib2-class.h ├── cmake │ └── LI ..
发布时间:2020-07-05 21:21:38 C/C++开发

SVN开关重定位-不是存储库的根

我正在尝试将工作副本文件夹从旧的专用svn服务器移动到新的svn服务器,该文件包含在子文件夹中.使用以下重新定位命令: svn switch --relocate https://oldserver/svn/repos https://newserver/some/directory 我得到: svn: 'https://newserver/some/directory ' is ..
发布时间:2020-07-05 21:21:28 其他开发

AArch64重定位前缀

我注意到用于ARM 64位汇编的GNU asm 重定位语法.那些像#:abs_g0_nc:和:pg_hi21:的东西是什么?他们在哪里解释?他们有模式吗?还是在忙碌中弥补它们?在哪里可以了解更多信息? 解决方案 简介 ELF64 定义了两种类型的重定位条目,称为 REL 和 RELA : typedef struct { Elf64_Addr r_offset; ..
发布时间:2020-07-05 21:16:00 其他开发

PE基础迁移如何建立?

我目前在了解如何建立PE Base重定位方面遇到困难. 我知道可能会有一个以上的重定位,我也知道为什么这样做以及如何进行,但我只是不以编程方式了解它: 以下哪一项是正确的(在WinNT.h中为IMAGE_BASE_RELOCATION)? // Base relocation #1 DWORD VirtualAddress; DWORD SizeOfBlock; // s ..
发布时间:2020-05-29 01:44:32 其他开发

用-fPIC重新编译

我的计算机上安装了 MPICH 3.0.4 (Ubuntu 12.04).我正在尝试安装一个名为 Qthreads 的库,该库我之前已经使用并成功安装了(除非已安装MPICH2软件包).配置工作正常: ./configure --prefix=/usr/local/qthreads --enable-multinode --with-multinode-runtime=mpi --with- ..
发布时间:2020-05-05 11:58:46 其他开发