问题标签 [relocation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3098 浏览

r - R - 在文件夹之间移动多个文件

基于此处回答的关于在 R 中使用 file.rename 将单个文件从一个文件夹移动到另一个的问题,有没有一种方法可以在 R 中构建一个循环函数,将所有(多个)文件从一个文件夹移动到另一个文件夹现有文件夹而不必显式命名所有单个文件?

如果可能的话,我想保持原始文件夹完好无损,这样我就可以在移动旧文件后开始用新文件填充它。

谢谢!

0 投票
0 回答
885 浏览

linker - 奇怪的链接器行为:重定位被截断以适应

我有一个带有两个绝对符号的内核的链接器脚本:_kernel_start_kernel_end. 但是,我只收到一个链接器重定位错误_kernel_end

关于这个错误,这里有很多问题,但我发现没有一个可以解决我的特定问题。

显然,这是:

...被视为 32 位,而这:

...被视为 64 位。如果我像这样将_kernel_end符号移到. += KERNEL_BASE行上方:

...然后它再次工作。但我想_kernel_end在我的链接器脚本的末尾。

链接描述文件将引导代码放在内存的开头,其余代码放在 64 位虚拟内存空间的高半部分。它看起来像这样:

内核真的很小,所以_kernel_start = 0x00100000_kernel_end = 0x00142000. 它不应该给我重定位错误。

我怎样才能重写链接描述文件_kernel_end以便不再给我重定位错误?我不想mcmodel=large只使用这个符号。


这是我使用符号的代码。是锈。

以下是 Rust 编译目标文件的重定位表中的条目:

0 投票
1 回答
772 浏览

git - 如何从本地工作副本创建颠覆存储库并保留日志和历史记录?

我有一个颠覆存储库的本地工作副本。该项目的服务器不再存在,但我想使用工作副本,我必须创建一个新的本地存储库,尽可能保留项目的日志和历史记录。

我尝试了很多东西,花了几天时间试图做到这一点,但无法弄清楚。由于我遇到了重定位和 file:/// 协议的问题,我尝试使用 svnserve 并创建一个 Windows 服务。但似乎我的文件夹没有良好的结构。我的 repo 中只有一个 .svn 文件夹,但我发现的信息告诉我应该有 conf、db、hooks 文件夹等......因此我的文件夹不被识别为 svn repo。

是否有可能做到这一点,什么是正确的方法。

我最初的目标是将项目转换为 Git,但由于我未能转换它,我首先尝试使其成为一个有效的 subversion repo。一旦它工作,稍后转换它。

我阅读了很多帖子,但大多数都解释了如何处理服务器上的工作存储库。就我而言,我只有一个旧的工作副本,并且不是由我自己维护的服务器已关闭。

谢谢你的帮助

0 投票
1 回答
2024 浏览

maven - 在阴影 jar 中使用 log4j 的问题

我的项目中有以下情况:

  1. 一个具有自己依赖项的大型模块(称为转换器)正在集成到主应用程序中(由不同的人单独开发,并且有自己的部分重叠依赖项);

  2. 最初,这个转换器模块可以作为可执行 jar 从命令行调用,因此它有自己的入口点(定义了 main() 方法的可运行类);这个可执行 jar 总是通过 maven shade 插件创建为 uber-jar;

  3. 现在这个转换器模块必须可以从主应用程序中额外调用(为此,我现在在形成命令行参数后直接调用入口点类的 main())。主应用程序也已创建为 uber-jar,并计划继续以这种方式创建。

因此,对于这种情况,我将使用 shade 插件实现正确的依赖分离,为此,我在转换器模块的 pom.xml 中添加了以下重定位规范:

结果,转换器模块的所有依赖项在组合到主应用程序的 uber-jar 时都被遮蔽(在它们前面加上 quase.)。

此配置的问题是应用程序和转换器都使用日志记录(slf4j 和 log4j),并且从应用程序代码调用转换器方法并开始使用日志记录后,出现以下错误:

所以在我看来,从转换器模块调用的阴影日志代码获取了对已在主应用程序中初始化的非阴影日志代码的引用,并且失败,因为它需要阴影代码(请参阅将非阴影分配给 shaded 的org.apache.log4j.FileAppender失败quase.org.apache.log4j.Appender) .

我试图从转换器的 pom.xml 中的阴影中排除日志记录依赖项:

但这导致了进一步的问题:整个应用程序失败如下:

看起来转换器代码仍然以某种方式期望阴影版本,因为它无法找到quase/org.apache.log4j.Category并且 quase 是阴影前缀。

我究竟做错了什么?任何帮助是极大的赞赏。

0 投票
0 回答
84 浏览

assembly - distorm - 如何找出汇编指令的操作数是否受 ASLR 影响(重定位部分)

我在x86 平台上将 distorm 反汇编程序用于可移植可执行文件 (PE)。是否有任何现有的函数、宏或标志可以指示汇编指令的任何操作数是否受重定位部分的影响?

0 投票
1 回答
1141 浏览

linker-errors - Xtensa --- 危险的重定位:窗口化长调用跨越 1GB 边界

在编译过程中出现以下错误

(.sram.text+0x1283):危险的重定位:窗口化的 longcall 跨越 1GB 边界;返回可能失败:( UND +0xdeadcafe)

在其中一个功能中。

架构是 Xtensa,使用的工具链是为 Xtensa 构建的 GNU 工具链。此错误位于 binutils 源代码中文件 elf32-xtensa.c 中的函数 elf_xtensa_do_reloc() 内。

请让我知道此错误的原因以及任何可能的解决方案。

0 投票
0 回答
74 浏览

kernel - Windows 驱动程序的重定位机制

我试图了解一点内核驱动程序的加载过程。据我所知,内核驱动程序加载在高端内存区域(在win32上> 0x80000000)实际上它们的基地址在编译时是未知的。我查看了一些系统驱动程序头的数据,似乎它们没有重定位目录。

那么内核如何正确加载它们呢?还是驱动程序代码与位置无关?我不这么认为,因为存在各种数据段。

谢谢 !

0 投票
0 回答
323 浏览

python - 在 virtualenv 中发生奇怪的重定位错误:`python:重定位错误:python:符号Øv�l��⎼�Ø┴�┌��⎼�Ø┴�`(等等...)

我在 virtualenv 中工作时遇到一个非常神秘的错误,该错误间歇性地发生。

尽管它现在已经发生在我身上 3-4 次,但我发现很难找到重现问题的条件。它发生在执行完全不同的代码段时,并且引发错误的同一段代码可能在错误之前和之后多次执行而没有问题。因此,目前对我来说系统地缩小导致问题的库是不切实际的,所以如果我的描述看起来含糊不清或不完整,我提前道歉。

症状

在 IPython 会话期间,我偶尔会遇到重定位错误,这会导致大量 unicode 乱码被转储到我的终端中。这是最近发生问题时的一些终端输出:

......它继续这样持续了好几页。在这种情况下,错误实际上并没有杀死我的 IPython 会话,尽管我的提示现在完全搞砸了:

大概与错误消息一起,一些包含控制字符的二进制数据必须被转储到终端中,因此所有的乱码。

现在,每当我尝试从同一个 virtualenv 中启动 Python 时,都会看到类似的重定位错误:

如果我停用这个 virtualenv 或切换到另一个,Python 可以正常工作。

恢复

发生这种情况的前几次,我只是删除了我的 virtualenv 并从头开始重建它。我最终通过反复试验发现,我也可以通过重新初始化来恢复损坏的 virtualenv,即

它会在其中创建一个新的 Python 二进制文件$VIRTUAL_ENV/bin(并为我提供pipand的新副本setuptools)。

可能的原因?

重新初始化 virtualenv 解决了问题的事实让我相信 Python 二进制文件本身以某种方式被破坏了。尽管我发现健康副本和损坏副本之间的文件大小没有差异,但它们的 MD5 哈希值确实不同。

以前有没有其他人遇到过这种错误?什么可能导致 Python 二进制文件损坏?有问题的机器在其他方面非常稳定——我没有理由怀疑内存或磁盘错误,而且我在系统日志中找不到任何可疑的东西。

以下是一些可能相关的版本详细信息:

  • Ubuntu 15.04 (3.19.0-21-generic)
  • 蟒蛇2.7.9
  • 虚拟环境 1.11.6
  • 虚拟环境包装器 4.3.1

更新:

我尝试区分损坏和未损坏的二进制文件,发现 0xD000 和 0xDFF0 之间的字节块已被重复模式覆盖:

工作副本:

损坏的副本:

我真的没有足够的知识来进一步解释这一点,但似乎位置和模式可能是线索。

0 投票
2 回答
447 浏览

gcc - “未绑定到正在创建的对象时重定位非法”是什么意思?

我正在尝试在运行 Solaris 10 的 SPARC 上构建 Apache Qpid。现在 libqpidtypes.so 构建,但 libqpidcommon.so 没有链接。

编译后,链接器会创建很多这样的错误消息:

ld:致命:重定位错误:R_SPARC_TLS_LDO_ADD:文件 CMakeFiles/qpidcommon.dir/qpid/sys/posix/PosixPoller.cpp.o:符号 _ZZN4qpid3sys15DeletionManagerINS0_19PollerHandlePrivateEE15getThreadStatusEvE12threadStatus:绑定到:CMakeFiles/qpidcommon.dir/qpid/sys/posix/Posix o:未绑定到正在创建的对象时重定位非法

我已经像这样构建了所需的 boost 库 program_options:

谷歌产生两个无用的搜索结果“未绑定到正在创建的对象时重新定位非法”

问题:你能告诉我错误信息告诉我什么吗?


编辑:

如果我注释掉线程本地存储说明符,Qpid 会成功编译和链接。当然,这不是运行时的正确行为。


这是完整的错误消息:

ld:警告:文件 /usr/local/lib/libboost_program_options.so:尝试多次包含文件 ld:致命:重定位错误:R_SPARC_TLS_LDM_HI22:文件 CMakeFiles/qpidcommon.dir/qpid/sys/posix/PosixPoller.cpp.o:符号_ZZN4qpid3sys15DeletionManagerINS0_19PollerHandlePrivateEE15getThreadStatusEvE12threadStatus:绑定到:CMakeFiles/qpidcommon.dir/qpid/sys/posix/PosixPoller.cpp.o:未绑定到正在创建的对象时重定位非法 ld:致命:重定位错误:R_SPARC_TLS_LDM_HI22:文件 CMakeFiles/qpidcommon.dir/q sys/posix/PosixPoller.cpp.o:符号_ZZN4qpid3sys15DeletionManagerINS0_19PollerHandlePrivateEE15getThreadStatusEvE12threadStatus:绑定到:CMakeFiles/qpidcommon.dir/qpid/sys/posix/PosixPoller.cpp.o:未绑定到正在创建的对象时重定位非法ld:致命:重定位错误:R_SPARC_TLS_LDO_HIX22:文件 CMakeFiles/qpidcommon.dir/qpid/sys/posix/PosixPoller.cpp.o:符号 _ZZN4qpid3sys15DeletionManagerINS0_19PollerHandlePrivateEE15getThreadStatusEvE12threadStatus:绑定到:CMakeFiles/qpidcommon.dir/qpid/sys/posix/PosixPoller.cpp.o 时重新定位非法:到正在创建的对象 ld:致命:重定位错误:R_SPARC_TLS_LDM_LO10:文件 CMakeFiles/qpidcommon.dir/qpid/sys/posix/PosixPoller.cpp.o:符号 _ZZN4qpid3sys15DeletionManagerINS0_19PollerHandlePrivateEE15getThreadStatusEvE12threadStatus:绑定到:CMakeFiles/qpidcommon.dir/qpid/sys/posix PosixPoller.cpp.o:未绑定到正在创建的对象时重定位非法 ld:致命:重定位错误:R_SPARC_TLS_LDM_ADD:文件 CMakeFiles/qpidcommon.dir/qpid/sys/posix/PosixPoller.cpp.o:符号_ZZN4qpid3sys15DeletionManagerINS0_19PollerHandlePrivateEE15getThreadStatusEvE12threadStatus:绑定到:CMakeFiles/qpidcommon.dir/qpid/sys/posix/PosixPoller.cpp.o:未绑定到正在创建的对象时重定位非法ld:致命:重定位错误:R_SPARC_TLS_LDM_CALL:文件CMakeFiles/qpidcommon.dir/q /sys/posix/PosixPoller.cpp.o:符号_ZZN4qpid3sys15DeletionManagerINS0_19PollerHandlePrivateEE15getThreadStatusEvE12threadStatus:绑定到:CMakeFiles/qpidcommon.dir/qpid/sys/posix/PosixPoller.cpp.o:未绑定到正在创建的对象时重定位非法ld:致命:重定位错误:R_SPARC_TLS_LDO_LOX10:文件CMakeFiles/qpidcommon.dir/qpid/sys/posix/PosixPoller.cpp.o:符号_ZZN4qpid3sys15DeletionManagerINS0_19PollerHandlePrivateEE15getThreadStatusEvE12threadStatus:绑定到:CMakeFiles/qpidcommon。dir/qpid/sys/posix/PosixPoller.cpp.o:未绑定到正在创建的对象时重定位非法 ld:致命:重定位错误:R_SPARC_TLS_LDO_ADD:文件 CMakeFiles/qpidcommon.dir/qpid/sys/posix/PosixPoller.cpp.o :符号_ZZN4qpid3sys15DeletionManagerINS0_19PollerHandlePrivateEE15getThreadStatusEvE12threadStatus:绑定到:CMakeFiles/qpidcommon.dir/qpid/sys/posix/PosixPoller.cpp.o:未绑定到正在创建的对象时重定位非法ld:致命:重定位错误:R_SPARC_TLS_LDM_LO10:文件CMakeFiles/qpidcommon。 qpid/sys/posix/PosixPoller.cpp.o:符号_ZZN4qpid3sys15DeletionManagerINS0_19PollerHandlePrivateEE15getThreadStatusEvE12threadStatus:绑定到:CMakeFiles/qpidcommon.dir/qpid/sys/posix/PosixPoller.cpp.o:未绑定到正在创建的对象时重定位非法ld:致命:重定位错误:R_SPARC_TLS_LDM_ADD:文件 CMakeFiles/qpidcommon.dir/qpid/sys/posix/PosixPoller.cpp.o:符号 _ZZN4qpid3sys15DeletionManagerINS0_19PollerHandlePrivateEE15getThreadStatusEvE12threadStatus:绑定到:CMakeFiles/qpidcommon.dir/qpid/sys/posix/PosixPoller.cpp.o:未绑定到对象时重定位非法正在创建 ld:致命:重定位错误:R_SPARC_TLS_LDM_CALL:文件 CMakeFiles/qpidcommon.dir/qpid/sys/posix/PosixPoller.cpp.o:符号 _ZZN4qpid3sys15DeletionManagerINS0_19PollerHandlePrivateEE15getThreadStatusEvE12threadStatus:绑定到:CMakeFiles/qpidcommon.dir/qpid/sys/posix/Pos cpp.o:未绑定到正在创建的对象时重定位非法 ld:致命:重定位错误:R_SPARC_TLS_LDO_LOX10:文件 CMakeFiles/qpidcommon.dir/qpid/sys/posix/PosixPoller.cpp.o:符号_ZZN4qpid3sys15DeletionManagerINS0_19PollerHandlePrivateEE15getThreadStatusEvE12threadStatus:绑定到:CMakeFiles/qpidcommon.dir/qpid/sys/posix/PosixPoller.cpp.o:未绑定到正在创建的对象时重定位非法ld:致命:重定位错误:R_SPARC_TLS_LDO_ADD:文件CMakeFiles/qpidcommon.dir/q /sys/posix/PosixPoller.cpp.o:符号_ZZN4qpid3sys15DeletionManagerINS0_19PollerHandlePrivateEE15getThreadStatusEvE12threadStatus:绑定到:CMakeFiles/qpidcommon.dir/qpid/sys/posix/PosixPoller.cpp.o:未绑定到正在创建的对象时重定位非法ld:致命:重定位错误:R_SPARC_TLS_LDM_LO10:文件CMakeFiles/qpidcommon.dir/qpid/sys/posix/PosixPoller.cpp.o:符号_ZZN4qpid3sys15DeletionManagerINS0_19PollerHandlePrivateEE15getThreadStatusEvE12threadStatus:绑定到:CMakeFiles/qpidcommon。dir/qpid/sys/posix/PosixPoller.cpp.o:未绑定到正在创建的对象时重定位非法 ld:致命:重定位错误:R_SPARC_TLS_LDM_ADD:文件 CMakeFiles/qpidcommon.dir/qpid/sys/posix/PosixPoller.cpp.o :符号_ZZN4qpid3sys15DeletionManagerINS0_19PollerHandlePrivateEE15getThreadStatusEvE12threadStatus:绑定到:CMakeFiles/qpidcommon.dir/qpid/sys/posix/PosixPoller.cpp.o:未绑定到正在创建的对象时重定位非法ld:致命:重定位错误:R_SPARC_TLS_LDM_CALL:文件CMakeFiles/qpidcommon.dir/ qpid/sys/posix/PosixPoller.cpp.o:符号_ZZN4qpid3sys15DeletionManagerINS0_19PollerHandlePrivateEE15getThreadStatusEvE12threadStatus:绑定到:CMakeFiles/qpidcommon.dir/qpid/sys/posix/PosixPoller.cpp.o:未绑定到正在创建的对象时重定位非法ld:致命:重定位错误:R_SPARC_TLS_LDO_LOX10:文件 CMakeFiles/qpidcommon.dir/qpid/sys/posix/PosixPoller.cpp.o:符号 _ZZN4qpid3sys15DeletionManagerINS0_19PollerHandlePrivateEE15getThreadStatusEvE12threadStatus:绑定到:CMakeFiles/qpidcommon.dir/qpid/sys/posix/PosixPoller.cpp.o:未绑定到对象时重定位非法正在创建 ld:致命:重定位错误:R_SPARC_TLS_LDO_ADD:文件 CMakeFiles/qpidcommon.dir/qpid/sys/posix/PosixPoller.cpp.o:符号 _ZZN4qpid3sys15DeletionManagerINS0_19PollerHandlePrivateEE15getThreadStatusEvE12threadStatus:绑定到:CMakeFiles/qpidcommon.dir/qpid/sys/posix/Pos cpp.o:未绑定到正在创建的对象时重定位非法 * * * 错误代码 1 以下命令导致错误:cd /export/home/user/qpid-cpp-0.34/build/src && /opt/csw/bin /cmake -E cmake_link_script CMakeFiles/qpidcommon.dir/link。txt --verbose= make:致命错误:目标命令失败src/libqpidcommon.so.2.0.0' Current working directory /export/home/user/qpid-cpp-0.34/build * * * Error code 1 The following command caused the error: make -f src/CMakeFiles/qpidcommon.dir/build.make src/CMakeFiles/qpidcommon.dir/build make: Fatal error: Command failed for targetsrc/CMakeFiles/qpidcommon.dir/all' 当前工作目录 /export/home/user/qpid-cpp-0.34/build * * * 错误代码1 以下命令导致错误: make -f CMakeFiles/Makefile2 all make: Fatal错误:目标“全部”的命令失败


编辑:这是链接器命令

/usr/ccs/bin/ld -V -G -dy -z text -M /opt/csw/lib/gcc/sparc-sun-solaris2.10/4.9.2/../../../libgcc -unwind.map -YP,/lib/sparcv9:/usr/lib/sparcv9 -Qy -o libqpidcommon.so.2.0.0 /usr/lib/sparcv9/crti.o /usr/ccs/lib/sparcv9/values- Xa.o /opt/csw/lib/gcc/sparc-sun-solaris2.10/4.9.2/sparcv9/crtbegin.o -L/usr/local/lib -L/usr/lib/mps -L/opt/ csw/lib/gcc/sparc-sun-solaris2.10/4.9.2/sparcv9 -L/usr/ccs/lib/sparcv9 -L/opt/csw/lib/gcc/sparc-sun-solaris2.10/4.9。 2/../../../sparcv9 -L/lib/sparcv9 -L/usr/lib/sparcv9 -L/opt/csw/lib/gcc/sparc-sun-solaris2.10/4.9.2 -L /opt/csw/lib/gcc/sparc-sun-solaris2.10/4.9.2/../../../../sparc-sun-solaris2.10/lib -L/usr/ccs/lib -L/opt/csw/lib/gcc/sparc-sun-solaris2.10/4.9.2/../../.. -hlibqpidcommon.so.2 CMakeFiles/qpidcommon.dir/qpid/framing/AMQP_AllProxy.cpp .o CMakeFiles/qpidcommon.dir/qpid/framing/ExchangeDeclareBody。cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/MessageCancelBody.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/TxRollbackBody.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/FilePublishBody.cpp.o CMakeFiles/ qpidcommon.dir/qpid/framing/FileAckBody.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/SessionCompletedBody.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/SessionDetachedBody.cpp.o CMakeFiles/qpidcommon.dir/qpid /framing/FileRejectBody.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/SessionExpectedBody.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/MessageAcceptBody.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/DtxStartBody。 cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/StreamCancelBody.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/StreamPublishBody.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/ConnectionStartOkBody.cpp。o CMakeFiles/qpidcommon.dir/qpid/framing/ServerInvoker.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/FileOpenOkBody.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/FileConsumeBody.cpp.o CMakeFiles/qpidcommon。 dir/qpid/framing/ExchangeBoundResult.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/DtxRollbackBody.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/QueueQueryBody.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing /MessageAcquireBody.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/StreamConsumeBody.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/SessionAttachedBody.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/TxCommitBody.cpp。 o CMakeFiles/qpidcommon.dir/qpid/framing/MessageFlushBody.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/AMQP_ClientProxy.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/MessageSetFlowModeBody.cpp.o CMakeFiles/qpidcommon。dir/qpid/framing/MethodBodyFactory.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/FragmentProperties.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/FileDeliverBody.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing /ConnectionCloseBody.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/QueueQueryResult.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/SessionConfirmedBody.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/ExecutionExceptionBody.cpp。 o CMakeFiles/qpidcommon.dir/qpid/framing/ConnectionRedirectBody.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/SessionKnownCompletedBody.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/MessageReleaseBody.cpp.o CMakeFiles/qpidcommon。 dir/qpid/framing/MessageRejectBody.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/Xid.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/SessionAttachBody.cpp.o CMakeFiles/qpidcommon。dir/qpid/framing/XaResult.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/DtxSetTimeoutBody.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/ExchangeBindBody.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing /ExecutionResultBody.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/FileConsumeOkBody.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/FileQosBody.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/SessionRequestTimeoutBody.cpp。 o CMakeFiles/qpidcommon.dir/qpid/framing/FileProperties.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/SessionFlushBody.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/MessageTransferBody.cpp.o CMakeFiles/qpidcommon。 dir/qpid/framing/ReplyTo.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/StreamReturnBody.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/MessageAcquireResult.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing /DtxSelectBody。cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/StreamProperties.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/AMQP_ServerProxy.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/ConnectionTuneOkBody.cpp.o CMakeFiles/ qpidcommon.dir/qpid/framing/ExchangeUnbindBody.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/reply_exceptions.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/DeliveryProperties.cpp.o CMakeFiles/qpidcommon.dir/qpid /framing/FileReturnBody.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/DtxGetTimeoutBody.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/QueueDeclareBody.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/TypeCode。 cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/DtxCommitBody.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/DtxGetTimeoutResult.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/ConnectionOpenOkBody.cpp。o CMakeFiles/qpidcommon.dir/qpid/framing/MethodBodyDefaultVisitor.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/FileQosOkBody.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/ExchangeQueryBody.cpp.o CMakeFiles/qpidcommon。 dir/qpid/framing/StreamQosBody.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/ConnectionOpenBody.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/FileStageBody.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing /Header.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/ExchangeBoundBody.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/MessageResumeResult.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/SessionCommandPointBody.cpp。 o CMakeFiles/qpidcommon.dir/qpid/framing/MessageResumeBody.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/DtxRecoverResult.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/StreamDeliverBody.cpp。o CMakeFiles/qpidcommon.dir/qpid/framing/AllInvoker.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/DtxRecoverBody.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/ClientInvoker.cpp.o CMakeFiles/qpidcommon。 dir/qpid/framing/SessionGapBody.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/SessionTimeoutBody.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/ExchangeDeleteBody.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing /ConnectionSecureOkBody.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/SessionDetachBody.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/ConnectionStartBody.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/FileCancelBody.cpp。 o CMakeFiles/qpidcommon.dir/qpid/framing/MessageFlowBody.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/QueueDeleteBody.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/ConnectionSecureBody.cpp.o CMakeFiles/qpidcommon。dir/qpid/framing/DtxForgetBody.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/ConnectionCloseOkBody.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/TxSelectBody.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing /DtxPrepareBody.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/ConnectionHeartbeatBody.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/DtxEndBody.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/ExecutionSyncBody.cpp。 o CMakeFiles/qpidcommon.dir/qpid/framing/ExchangeQueryResult.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/QueuePurgeBody.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/StreamQosOkBody.cpp.o CMakeFiles/qpidcommon。 dir/qpid/framing/MessageStopBody.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/StreamConsumeOkBody.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/FileOpenBody.cpp.o CMakeFiles/qpidcommon。dir/qpid/framing/MessageSubscribeBody.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/ConnectionTuneBody.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/MessageProperties.cpp.o CMakeFiles/qpidcommon.dir/qpid/sys /posix/AsynchIO.cpp.o CMakeFiles/qpidcommon.dir/qpid/sys/posix/Condition.cpp.o CMakeFiles/qpidcommon.dir/qpid/sys/posix/Fork.cpp.o CMakeFiles/qpidcommon.dir/qpid/ sys/posix/Path.cpp.o CMakeFiles/qpidcommon.dir/qpid/sys/posix/FileSysDir.cpp.o CMakeFiles/qpidcommon.dir/qpid/sys/posix/IOHandle.cpp.o CMakeFiles/qpidcommon.dir/qpid /sys/posix/LockFile.cpp.o CMakeFiles/qpidcommon.dir/qpid/sys/posix/MemoryMappedFile.cpp.o CMakeFiles/qpidcommon.dir/qpid/sys/posix/Mutex.cpp.o CMakeFiles/qpidcommon.dir/ qpid/sys/posix/PipeHandle.cpp.o CMakeFiles/qpidcommon.dir/qpid/sys/posix/PollableCondition.cpp.o CMakeFiles/qpidcommon。dir/qpid/sys/posix/Shlib.cpp.o CMakeFiles/qpidcommon.dir/qpid/log/posix/SinkOptions.cpp.o CMakeFiles/qpidcommon.dir/qpid/sys/posix/BSDSocket.cpp.o CMakeFiles/qpidcommon .dir/qpid/sys/posix/SocketAddress.cpp.o CMakeFiles/qpidcommon.dir/qpid/sys/posix/StrError.cpp.o CMakeFiles/qpidcommon.dir/qpid/sys/posix/Thread.cpp.o CMakeFiles/ qpidcommon.dir/qpid/sys/posix/Time.cpp.o CMakeFiles/qpidcommon.dir/qpid/SaslFactory.cpp.o CMakeFiles/qpidcommon.dir/qpid/sys/solaris/SystemInfo.cpp.o CMakeFiles/qpidcommon.dir /qpid/sys/posix/PosixPoller.cpp.o CMakeFiles/qpidcommon.dir/qpid/sys/cyrus/CyrusSecurityLayer.cpp.o CMakeFiles/qpidcommon.dir/qpid/sys/ssl/check.cpp.o CMakeFiles/qpidcommon。 dir/qpid/sys/ssl/util.cpp.o CMakeFiles/qpidcommon.dir/qpid/sys/ssl/SslSocket.cpp.o CMakeFiles/qpidcommon.dir/qpid/assert.cpp.o CMakeFiles/qpidcommon。dir/qpid/AclHost.cpp.o CMakeFiles/qpidcommon.dir/qpid/Address.cpp.o CMakeFiles/qpidcommon.dir/qpid/DataDir.cpp.o CMakeFiles/qpidcommon.dir/qpid/Exception.cpp.o CMakeFiles/ qpidcommon.dir/qpid/Modules.cpp.o CMakeFiles/qpidcommon.dir/qpid/Options.cpp.o CMakeFiles/qpidcommon.dir/qpid/Plugin.cpp.o CMakeFiles/qpidcommon.dir/qpid/RefCountedBuffer.cpp.o CMakeFiles/qpidcommon.dir/qpid/SessionState.cpp.o CMakeFiles/qpidcommon.dir/qpid/SessionId.cpp.o CMakeFiles/qpidcommon.dir/qpid/StringUtils.cpp.o CMakeFiles/qpidcommon.dir/qpid/Url.cpp .o CMakeFiles/qpidcommon.dir/qpid/UrlArray.cpp.o CMakeFiles/qpidcommon.dir/qpid/NullSaslClient.cpp.o CMakeFiles/qpidcommon.dir/qpid/NullSaslServer.cpp.o CMakeFiles/qpidcommon.dir/qpid/amqp_0_10 /SessionHandler.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/AccumulatedAck.cpp。o CMakeFiles/qpidcommon.dir/qpid/framing/AMQBody.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/AMQMethodBody.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/AMQContentBody.cpp.o CMakeFiles/qpidcommon。 dir/qpid/framing/AMQFrame.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/AMQHeaderBody.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/AMQHeartbeatBody.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing /Array.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/Buffer.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/FieldTable.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/FieldValue.cpp。 o CMakeFiles/qpidcommon.dir/qpid/framing/FrameSet.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/FrameDecoder.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/List.cpp.o CMakeFiles/qpidcommon。 dir/qpid/framing/ProtocolInitiation.cpp.o CMakeFiles/qpidcommon。dir/qpid/framing/ProtocolVersion.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/SendContent.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/SequenceNumber.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing /SequenceNumberSet.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/SequenceSet.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/Proxy.cpp.o CMakeFiles/qpidcommon.dir/qpid/framing/Uuid.cpp。 o CMakeFiles/qpidcommon.dir/qpid/framing/TransferContent.cpp.o CMakeFiles/qpidcommon.dir/qpid/log/Logger.cpp.o CMakeFiles/qpidcommon.dir/qpid/log/Options.cpp.o CMakeFiles/qpidcommon。 dir/qpid/log/OstreamOutput.cpp.o CMakeFiles/qpidcommon.dir/qpid/log/Selector.cpp.o CMakeFiles/qpidcommon.dir/qpid/log/Statement.cpp.o CMakeFiles/qpidcommon.dir/qpid/management /Buffer.cpp.o CMakeFiles/qpidcommon.dir/qpid/management/ConnectionSettings.cpp。o CMakeFiles/qpidcommon.dir/qpid/management/Mutex.cpp.o CMakeFiles/qpidcommon.dir/qpid/management/Manageable.cpp.o CMakeFiles/qpidcommon.dir/qpid/management/ManagementObject.cpp.o CMakeFiles/qpidcommon。 dir/qpid/sys/AggregateOutput.cpp.o CMakeFiles/qpidcommon.dir/qpid/sys/AsynchIOHandler.cpp.o CMakeFiles/qpidcommon.dir/qpid/sys/Dispatcher.cpp.o CMakeFiles/qpidcommon.dir/qpid/sys /DispatchHandle.cpp.o CMakeFiles/qpidcommon.dir/qpid/sys/Runnable.cpp.o CMakeFiles/qpidcommon.dir/qpid/sys/Shlib.cpp.o CMakeFiles/qpidcommon.dir/qpid/sys/Timer.cpp。 o CMakeFiles/qpidcommon.dir/qpid/sys/TimerWarnings.cpp.o CMakeFiles/qpidcommon.dir/qpid/amqp_0_10/Codecs.cpp.o CMakeFiles/qpidcommon.dir/qpid/amqp/CharSequence.cpp.o CMakeFiles/qpidcommon。 dir/qpid/amqp/DataBuilder.cpp.o CMakeFiles/qpidcommon.dir/qpid/amqp/Decoder.cpp。o CMakeFiles/qpidcommon.dir/qpid/amqp/Descriptor.cpp.o CMakeFiles/qpidcommon.dir/qpid/amqp/Encoder.cpp.o CMakeFiles/qpidcommon.dir/qpid/amqp/ListBuilder.cpp.o CMakeFiles/qpidcommon。 dir/qpid/amqp/MapEncoder.cpp.o CMakeFiles/qpidcommon.dir/qpid/amqp/MapSizeCalculator.cpp.o CMakeFiles/qpidcommon.dir/qpid/amqp/MapBuilder.cpp.o CMakeFiles/qpidcommon.dir/qpid/amqp /MapReader.cpp.o CMakeFiles/qpidcommon.dir/qpid/amqp/MessageEncoder.cpp.o CMakeFiles/qpidcommon.dir/qpid/amqp/MessageId.cpp.o CMakeFiles/qpidcommon.dir/qpid/amqp/MessageReader.cpp。 o CMakeFiles/qpidcommon.dir/qpid/amqp/Sasl.cpp.o CMakeFiles/qpidcommon.dir/qpid/amqp/SaslClient.cpp.o CMakeFiles/qpidcommon.dir/qpid/amqp/SaslServer.cpp.o CMakeFiles/qpidcommon。 dir/qpid/messaging/amqp/Transport.cpp.o CMakeFiles/qpidcommon.dir/qpid/sys/MemStat.cpp.o libqpidtypes.so.1.0。0 -ldl -lrt /usr/local/lib/libboost_program_options.so -lsasl2 -lnss3 -lsmime3 -lssl3 -lnssutil3 -lplds4 -lplc4 -lnspr4 -lpthread -ldl -lposix4 -lrt /usr/local/lib/libboost_program_options.so - lsasl2 -lnss3 -lsmime3 -lssl3 -lnssutil3 -lplds4 -lplc4 -lnspr4 -lpthread -lposix4 -R/usr/local/lib:/usr/lib/mps:/export/home/user/qpid-cpp-0.34/build/ src:-lgcc_s -lpthread -lc -R /opt/csw/lib/64 -lgcc_s -lpthread -lc -R /opt/csw/lib/64 /opt/csw/lib/gcc/sparc-sun-solaris2.10 /4.9.2/sparcv9/crtend.o /usr/lib/sparcv9/crtn.o34/build/src: -lgcc_s -lpthread -lc -R /opt/csw/lib/64 -lgcc_s -lpthread -lc -R /opt/csw/lib/64 /opt/csw/lib/gcc/sparc-sun -solaris2.10/4.9.2/sparcv9/crtend.o /usr/lib/sparcv9/crtn.o34/build/src: -lgcc_s -lpthread -lc -R /opt/csw/lib/64 -lgcc_s -lpthread -lc -R /opt/csw/lib/64 /opt/csw/lib/gcc/sparc-sun -solaris2.10/4.9.2/sparcv9/crtend.o /usr/lib/sparcv9/crtn.o

0 投票
2 回答
215 浏览

linker - 虚拟/逻辑内存和程序重定位

虚拟内存和逻辑内存有助于确保程序不会破坏彼此的数据。

程序重定位几乎可以确保多个程序不会相互破坏。重定位会修改目标程序,以便可以将其加载到新的备用地址。

虚拟内存、逻辑内存和程序重定位有什么关系?它们相似吗?如果它们相同/相似,那么我们为什么需要程序重定位?