jjzjj

c++ - 请解释此链接错误 : referenced in section . rodata

我正在32位SLES10机器上进行构建。使用GCC3.4.2这是一个示例错误`.L8245'referencedinsection`.rodata'ofCMakeFiles/myproj.dir/c++/util/MyObj.o:definedindiscardedsection`.gnu.linkonce.t._ZN5boost9re_detail9reg_grep2INS0_21grep_search_predicateIPKcSaIcEEES4_cNS_12regex_traitsIcEES5_S5_EEjT_T0_SA_RKNS_14reg_expressionIT1_T2_T

c++ - 编译失败,出现 "relocation R_X86_64_32 against ` .rodata.str1。 8' can not be used when making a shared object"

我正在尝试从VPS中的makefile编译此源代码,但它不起作用。VPS是64美分操作系统这是完整的错误#makegcc-c-O3-w-DLINUX-I../SDK/amx/../SDK/amx/*.cg++-c-O3-w-DLINUX-I../SDK/amx/../SDK/*.cppg++-c-O3-w-DLINUX-I../SDK/amx/*.cppg++-O2-fshort-wchar-shared-o"TCP_V1.so"*.o/usr/bin/ld:TCP-LINUX_V1.o:relocationR_X86_64_32against`.rodata.str1.8'canno

c++ - 针对 `.rodata' 重定位 R_X86_64_32S ... 在 64 位平台上编译时

所以我一直在编写32位代码,昨天我需要构建一个dll,但我遇到了一些问题。反正我解决了here.不幸的是,即使我认为一切正常,但当我将程序和makefile移动到其他运行64位的计算机上时发现情况并非如此,你可以猜到发生了什么......所以我的问题与搬迁有关,因为64位/usr/bin/ld:MyClass.o:relocationR_X86_64_32Sagainst`.rodata'cannotbeusedwhenmakingasharedobject;recompilewith-fPICMyClass.o:couldnotreadsymbols:Badvalue这是我的make

c++ - 针对 `.rodata' 重定位 R_X86_64_32S ... 在 64 位平台上编译时

所以我一直在编写32位代码,昨天我需要构建一个dll,但我遇到了一些问题。反正我解决了here.不幸的是,即使我认为一切正常,但当我将程序和makefile移动到其他运行64位的计算机上时发现情况并非如此,你可以猜到发生了什么......所以我的问题与搬迁有关,因为64位/usr/bin/ld:MyClass.o:relocationR_X86_64_32Sagainst`.rodata'cannotbeusedwhenmakingasharedobject;recompilewith-fPICMyClass.o:couldnotreadsymbols:Badvalue这是我的make

linux - 如何在 Linux 上检查 ELF 文件的数据部分的内容?

我一直在使用objdump来查看LinuxELF二进制文件中的汇编代码。有时会通过存储在rodata(只读数据)部分中的跳转表进行间接跳转。如何获取objdump或任何其他工具来显示此数据部分的内容?我可以执行程序并在调试器中检查相关地址,但我不想这样做,因为它必须以交互方式完成。理想的答案是确定一个工具,它不仅可以显示内容,还可以让我控制显示格式,就像od一样。 最佳答案 objdump-s-j.rodataexefile提供rodata部分内容的并排十六进制/可打印ASCII转储,例如:Contentsofsection.rod

linux - 如何在 Linux 上检查 ELF 文件的数据部分的内容?

我一直在使用objdump来查看LinuxELF二进制文件中的汇编代码。有时会通过存储在rodata(只读数据)部分中的跳转表进行间接跳转。如何获取objdump或任何其他工具来显示此数据部分的内容?我可以执行程序并在调试器中检查相关地址,但我不想这样做,因为它必须以交互方式完成。理想的答案是确定一个工具,它不仅可以显示内容,还可以让我控制显示格式,就像od一样。 最佳答案 objdump-s-j.rodataexefile提供rodata部分内容的并排十六进制/可打印ASCII转储,例如:Contentsofsection.rod

rt-thread中MSH_CMD_EXPORT()函数的实现原理-const char __fsym_##cmd##_name[] RT_SECTION(“.rodata.name“) = #cmd

constchar_fsym##cmd##_name[]RT_SECTION(".rodata.name")=#cmd学习一下这行代码对这行代码里面的__fsym双#,RT_SECTION这些都不理解#defineRT_SECTION(x)attribute((section(x)))这行代码的__attribute__((section(x)))又是什么意思???学习结论:把__fsym_##cmd##_name[]这个变量放置到名为".rodata.name"的段中attribute((section(x)))使用详解----精品那么问题来了,使用section将变量放到我们自定义的输入段

rt-thread中MSH_CMD_EXPORT()函数的实现原理-const char __fsym_##cmd##_name[] RT_SECTION(“.rodata.name“) = #cmd

constchar_fsym##cmd##_name[]RT_SECTION(".rodata.name")=#cmd学习一下这行代码对这行代码里面的__fsym双#,RT_SECTION这些都不理解#defineRT_SECTION(x)attribute((section(x)))这行代码的__attribute__((section(x)))又是什么意思???学习结论:把__fsym_##cmd##_name[]这个变量放置到名为".rodata.name"的段中attribute((section(x)))使用详解----精品那么问题来了,使用section将变量放到我们自定义的输入段
12