我正在尝试运行一个我下载并编译了其源代码的程序。当我尝试运行该程序时,我不断收到消息:
unable to load undefined symbol _z15InvalidateImageSs
Run Code Online (Sandbox Code Playgroud)
我正在尝试确定为什么会出现此错误。该程序实际上是一个由另一个程序加载的库。我的程序编译为 .so 文件。
我跑了:
$ nm myprog.so > nm.txt
Run Code Online (Sandbox Code Playgroud)
该符号显示在文件中,但没有与之关联的地址。
$ find . -type f | xargs fgrep -I '_zinvalidateimagess' | grep -v 'Binary
我没有结果。2. 我在所有标准加载库中搜索了符号:
$ scanelf -l -s _zInvalidateImageSs | grep -I '_zinvalidateImageSs'
Run Code Online (Sandbox Code Playgroud)
又没有结果。
所以我的问题是:如果符号从未在源树中的任何地方被引用,为什么它在 .so 文件中是一个问题?我如何弄清楚这个符号应该来自哪里?
我有一个正在测试的程序,我需要确定该进程使用的最大内存。我知道通常
ps -aux
可以为我提供此信息,但该过程在 1/10 秒内运行,因此让 ps 捕获它不是一个好的选择。
获取此类信息还有其他好的选择吗?我正在一个程序上运行一些基准测试,看看我是否可以提高它的内存使用率。
我已使用 Cygwin ssh 命令 ssh 进入 Linux 控制台。运行命令后,我需要复制几行输出并将它们粘贴到 Windows 记事本窗口中。
问题是我无法在 ssh 会话中使用鼠标,因为我是盲人,所以左键单击并拖动到区域底部进行复制对我来说不起作用。
有没有键盘方法可以实现这一点?
顺便说一句:我正在尝试为我需要保存的某些软件复制 3 或 4 行随机生成的激活密钥。
这个问题的另一个补充是我正在运行的命令提供了这个长激活密钥,实际上必须将其粘贴到网站中以生成令牌,然后必须将其粘贴到在显示激活密钥后等待输入的终端中。
我知道我可以使用右键单击或 ctrl+ins 键将令牌粘贴回终端,但我需要获取激活密钥。
由于该过程的第二步,重定向到文件将不起作用。