草庐IT

symbolication

全部标签

c++ - dlopen - undefined symbol 错误

我正在使用dlopen在运行时加载共享库dlopen("SharedLibarary1.so",RTLD_NOW|RTLD_GLOBAL);在该共享对象中,我引用了另一个共享库“SharedLibarary2.so”中定义的constchar*。可执行文件和两个库都是使用-rdynamic构建的。但我在使用dlopen时仍然遇到运行时错误:“/usr/lib/SharedLibarary1.so:undefinedsymbol”并指向损坏的constchar*具有undefinedsymbol。通过GDB“信息共享”,我可以看到第二个库未在错误点加载。如果我在第一个库上执行dlopen

linux - 当路径包含符号链接(symbolic link)时,如何在 unix/linux 中移回一个目录?

我创建了一个指向深层嵌套目录的符号链接(symboliclink)。使用符号链接(symboliclink),我可以从我的主目录移动到该目录。我想从目标目录移回一个目录,但shell返回到主目录。[root@pe1800xs~]#pwd/root[root@pe1800xs~]#mkdir-pabc/def/ghi/jkl/mno/pqr[root@pe1800xs~]#ln-sabc/def/ghi/jkl/mno/pqr/xyz[root@pe1800xs~]#cdxyz[root@pe1800xsxyz]#pwd/root/xyz[root@pe1800xsxyz]#pwd-P/

c - 获取符号链接(symbolic link)的真实路径

假设我想获取符号链接(symboliclink)的真实路径。我知道readlink和stat系统调用都可以取消对链接的引用并为我提供它的真实路径。它们是否以相同的方式运行(仅关于取消引用,我知道stat做的更多)?我应该更喜欢其中之一吗? 最佳答案 使用stat()告诉您任何符号链接(symboliclink)链末尾的文件;它不会以任何方式为您提供路径。使用lstat()获取有关所引用的符号链接(symboliclink)的信息(如果有);当给定的名称不是符号链接(symboliclink)时,它的行为类似于stat()。使用rea

linux - GDB 警告 : Loadable section not found in added symbol-file system-supplied DSO at 0x7ffff7ffd000

abijithbufferOverFlow$gdba.outGNUgdb(GDB)7.6Copyright(C)2013FreeSoftwareFoundation,Inc.LicenseGPLv3+:GNUGPLversion3orlaterThisisfreesoftware:youarefreetochangeandredistributeit.ThereisNOWARRANTY,totheextentpermittedbylaw.Type"showcopying"and"showwarranty"fordetails.ThisGDBwasconfiguredas"x86_64-

linux - 不扩展 $HOME 或 "~"的符号链接(symbolic link)?

基本思想是我想链接到相对于$HOME的路径,而不是显式扩展$HOME变量,因为我想确保链接在多台机器上有效,例如,当我这样做的时候ln-s~/datadatalnk我希望它被定向到目录/home/user/data在一台机器上有一个用户$HOME的/home/user,并到另一台机器上的/home/machine/user/data,该机器的用户$HOME为/home/machine/user/data。我无法在第二台机器上使用创建符号链接(symboliclink)ln-s/home/machine/user/home/user因为我没有这样做的权限,而且我无法链接相对路径,因为两台

linux - 如何通过rsync只复制符号链接(symbolic link)

如何使用rsync仅复制符号链接(symboliclink)(而不是它指向的文件)或其他文件?我试过了rsync-uvrlinput_diroutput_dir但我只需要专门复制符号链接(symboliclink)?使用includeexclude选项有什么技巧吗? 最佳答案 根据thisquestion+answer,您可以将其编写为管道。管道是shell编程和shell脚本不可或缺的一部分。find/path/to/files-typel-print|\rsync-av--files-from=-/path/to/filesus

linux - 我如何检测 Perl 中的符号链接(symbolic link)已损坏?

我想使用Perl删除目录中损坏的符号链接(symboliclink)。在我看来,我只需要列出一个目录的文件并测试这是一个符号链接(symboliclink)(-l),如果它返回false就取消链接。但似乎在使用readir列出所有文件时,我损坏的符号链接(symboliclink)没有被识别为文件。因为我的链接没有指向任何内容,所以我明白为什么。然后:如何检测Perl中的符号链接(symboliclink)是否损坏?谢谢,更新$myDir中的所有文件都是符号链接(symboliclink),有效或损坏。当我显示@files时,我只得到一个有效符号链接(symboliclink)的列表。

linux - 通过符号链接(symbolic link)调用时如何在脚本本身内部获取脚本文件路径

当我需要在脚本本身中获取脚本文件的路径时,我使用这样的东西:`dirname$0`在我通过指向它的符号链接(symboliclink)调用脚本之前,该文件一直有效。在这种情况下,上面的代码打印链接的位置而不是原始文件。有没有办法获取原始脚本文件的路径,而不是链接?谢谢,迈克 最佳答案 if[-L$0];thenDIR=$(dirname$(readlink-f$0));elseDIR=$(dirname$0);fi; 关于linux-通过符号链接(symboliclink)调用时如何在脚

linux - GNU 链接器 : alternative to --version-script to list exported symbols at the command line?

在使用GNU工具链的Linux上,我知道如何使用版本脚本(gcc-Wl,--version-script=symbols.map)控制从共享库导出的符号,但我想列出导出的符号命令行代替。IOW,我想要相当于link/EXPORT:foo来自MS工具链。可能吗?编辑:我的问题可能不是很清楚:如果我有一个库libfoo.so,我只想导出库foo1和foo2,我可以创建一个版本脚本foo.linux,如下所示libfoo.so{global:foo1;foo2;local:*;}然后做gcc-sharedfoo.c-Wl,--version-script=foo.linux-olibfoo.

linux - Python : Import cairo error (2. 7 & 3.6) undefined symbol :cairo_tee_surface_index

尝试在Python2.7中导入gtk时出现以下错误:>>>importgtkTraceback(mostrecentcalllast):File"",line1,inFile"gtk/__init__.py",line40,infromgtkimport_gtkFile"/usr/lib/python2.7/site-packages/cairo/__init__.py",line1,infrom._cairoimport*#noqa:F401,F403ImportError:/usr/lib/python2.7/site-packages/cairo/_cairo.so:undefi