小编sda*_*aau的帖子

Linux:控制`ld`搜索.o目标文件的位置?

好吧,情况就是这样:我正在尝试使用一些较旧的软件:在Ubuntu Lucid上工作正常,在Natty上失败.

所以,我strace喋喋不休,事实证明这个软件调用ld,并ld最终失败:

.../ld: crt1.o: No such file: No such file or directory
Run Code Online (Sandbox Code Playgroud)

...是的,旧的crti.o文件丢失错误:)但是,我想用更一般的术语提问...

问题是,这是"独立"(较旧)ld,当我跑步时.../ld -verbose | less,我得到:

...
SEARCH_DIR("/usr/local/lib"); 
SEARCH_DIR("/lib"); 
SEARCH_DIR("/usr/lib");
...
Run Code Online (Sandbox Code Playgroud)

现在,问题在于:

  • 在Lucid,crt1.o是在/usr/lib/crt1.o
  • 在纳蒂,crt1.o是在/usr/lib/i386-linux-gnu/crt1.o

...所以,毫无疑问,为什么crt1.o无法找到,我想.看来,我所要做的,就是告诉ld寻找crt1.o/usr/lib/i386-linux-gnu,但我怎么做呢?

我以为我可以使用该-L选项,但是man ld说:

to link a file "hello.o":

    ld -o <output> /lib/crt0.o hello.o -lc

  This tells ld to produce a file called output as …
Run Code Online (Sandbox Code Playgroud)

linux search path object ld

6
推荐指数
2
解决办法
1万
查看次数

(n)python中的curses pad不工作

我似乎无法让ncurses pad在python(2.6,2.7和3.2)中工作.直接使用http://docs.python.org/howto/curses.html上的代码我甚至无法让它工作.非填充代码非常有效.

import curses

def func(scr):
    pad = curses.newpad(100, 100)
    pad.addstr(0,0, "Testing")

    #  Displays a section of the pad in the middle of the screen
    pad.refresh( 0,0, 5,5, 10,10)

    scr.refresh()
    scr.getch()

if __name__ == '__main__':
    curses.wrapper(func)
Run Code Online (Sandbox Code Playgroud)

问题是什么?移除垫(并将垫更换为scr)工作正常

python ncurses

6
推荐指数
1
解决办法
1932
查看次数

在Python中存储一个列表的元素,在另一个列表中 - 通过引用?

我只是觉得我已经把它记下来了,因为我已经看过了 - 对这种行为得到确认会很好; 我确实看到如何通过引用传递变量?,但我不确定如何在这种情况下解释它.

假设我们有这两个数组/列表:

a = [1, 2, 3, 4]
b = [-1, a, -100, a[2], -1]
Run Code Online (Sandbox Code Playgroud)

口译员最初将其视为:

>>> print(a)
[1, 2, 3, 4]
>>> print(b)
[-1, [1, 2, 3, 4], -100, 3, -1]
Run Code Online (Sandbox Code Playgroud)

现在让我们改变a[2],看看会发生什么:

>>> print(a)
[1, 2, 55, 4]
>>> print(b)
[-1, [1, 2, 55, 4], -100, 3, -1]
Run Code Online (Sandbox Code Playgroud)

所以,无论列表b具有的参考名单 a,该值已经更新-但只要b有一个(一个引用?)被初始化从元素列表a,似乎是Python的扩展在初始化时的值,这样存储的元素值(不是通过引用),所以它的值显然不会更新.

基本上,我找到了一个用例,在这里可以方便地定义eg b = [-1 a[2] -1],然后更新a[2],并且能够计算出a[2]获取(在这种情况下)的值时将发出的最新值b[1] …

python arrays reference list

6
推荐指数
1
解决办法
1154
查看次数

在远程运行git命令?

我已经看到了:

由此判断,对于我想要做的事情,我必须登录ssh并在远程服务器上运行脚本; 但我希望有更多的git集成解决方案,所以让我解释一下我想做什么.

我有一个远程仓库,它是git-svn; 然后我有一个本地git-only repo,它是遥控器的克隆.因此,本地有一个对远程URL的引用remote.origin.url(见过git config --list).

我想要做的是git svn log,在遥控器上运行相当于(可能有一些后处理),但是从本地 …

git git-remote

6
推荐指数
1
解决办法
3486
查看次数

Linux:管道进入Python(ncurses)脚本,stdin和termios

显然这几乎是" 从python中的stdin读取时出现错误的管道文件描述符 - Stack Overflow "; 但是,我认为这种情况稍微复杂一些(并且它不是Windows特定的,因为该线程的结论是).

我目前正在尝试用Python编写一个简单的脚本:我想为脚本提供输入 - 通过命令行参数; 或者通过"管道"字符串到此脚本 - 并让脚本使用curses终端接口显示此输入字符串.

这里称为完整脚本,testcurses.py如下所示.问题是,无论何时我尝试实际的管道,这似乎搞乱了标准,curses窗口永远不会显示.这是一个终端输出:

## CASE 1: THROUGH COMMAND LINE ARGUMENT (arg being stdin):
##
$ ./testcurses.py -
['-'] 1
stdout/stdin (obj): <open file '<stdout>', mode 'w' at 0xb77dc078> <open file '<stdin>', mode 'r' at 0xb77dc020>
stdout/stdin (fn): 1 0
env(TERM): xterm xterm
stdin_termios_attr [27906, 5, 1215, 35387, 15, 15, ['\x03', ... '\x00']]
stdout_termios_attr [27906, 5, 1215, 35387, 15, 15, ['\x03', ... …
Run Code Online (Sandbox Code Playgroud)

python linux pipe ncurses termios

5
推荐指数
2
解决办法
6005
查看次数

Graphviz:如何旋转节点(或子图)?

我想要一个节点(或一个子图,包围一个节点 - 无论哪个可能/更容易)旋转,如下图所示:

期望的旋转节点效果

(请注意,如果旋转"B"标签对我来说无关紧要 - 只有记录中的 'verti-*' 文本[或者更确切地说,整个记录节点]如图所示旋转)

 

但是,我最接近的是以下dot代码:

digraph graphname {
    node [fontname=Monospace, fontsize=14]; 
    subgraph clusterMasterBox {
        node [shape=record];
        l1 [label = "{ horiz-1 \r| \
 horiz-2 \r| \
 horiz-3 \r| \
 horiz-4 \r} \
"];
        subgraph clusterSubRotateBox {
            rotate=90;
            node [shape=record,rotate=90];
            l2 [label = "{ verti-1 \r| \
 verti-2 \r| \
 verti-3 \r| \
 verti-4 \r} \
"];     
            label="B";
        }
    label="A"
    }
}
Run Code Online (Sandbox Code Playgroud)

我有subgraph clusterSubRotateBox那里的唯一原因(以及它嵌套在里面的唯一原因clusterMasterBox),是因为我希望我可以为它分配旋转,但显然我不能 - 因为上面的代码生成了这个图像:

gviz旋转实际

所以我的问题是 - …

rotation graphviz subgraph

5
推荐指数
3
解决办法
7365
查看次数

如何生成在文档查看器中工作的纯文本源代码 PDF 示例?

我刚刚发现帖子Adobe 论坛:规范中的简单文本字符串示例已损坏。,所以我对查找纯文本源代码 PDF 示例很感兴趣。

所以,通过那个帖子,我最终发现:

PDF 1.7 规范在第 699 页附录“_Annex H(信息性)示例 PDF 文件”;从那里开始,我想尝试“H.3 简单文本字符串示例”(“经典的 Hello World”)。

所以我试着把它保存为hello.pdf(_except 当你从 PDF32000_2008.pdf 复制时,你可能会得到“ %PDF-1. 4” - 即在 之后插入一个空格1.,必须删除_):

%PDF-1.4
1 0 obj
  << /Type /Catalog
      /Outlines 2 0 R
      /Pages 3 0 R
  >>
endobj

2 0 obj
  << /Type /Outlines
      /Count 0
  >>
endobj …
Run Code Online (Sandbox Code Playgroud)

linux pdf command-line pdf-generation

5
推荐指数
1
解决办法
1万
查看次数

查询Ghostscript以获取输出设备的默认选项/设置(例如'pdfwrite'或'tiffg4')

这个答案中'GhostScript命令行参数将EPS转换为PDF' ; 据说pdfwriteGhostscript设备的默认分辨率是720x720,我最初觉得难以置信!

有没有办法列出Ghostscript设备的默认选项?

ghostscript

5
推荐指数
1
解决办法
6651
查看次数

在非常宽的 HTML 表格上获得右边距?

我有一张很宽的桌子 - 太宽了,无法适应屏幕宽度;所以浏览器必须显示滚动条。我想要这张桌子左边和右边有一些 20px 的空间;所以我尝试使用以下方式对其进行样式设置(完整代码如下):

  table {
    margin-left: 20px;
    margin-right: 20px;
    text-align: left;
    border-collapse: collapse;
    background-color: #e0e4f5;
  }
Run Code Online (Sandbox Code Playgroud)

左边距按预期显示:

左边距

但右边距没有(有点难以看到 - 但请注意水平滚动条的右边缘与表格的右边缘对齐):

右边距

是否有可能获得某种右边距来显示?

这是我的完整测试代码:

表 { 左边距:20px; 右边距:20px;文本对齐:左;边框折叠:折叠;背景颜色:#e0e4f5;}

<table id="mytable">
  <caption>Table caption</caption>
  <thead>
    <tr>
    <th scope='col'>head 1</th>
    <th scope='col'>head 2</th>
    <th scope='col'>head 3</th>
    <th scope='col'>head 4</th>
    <th scope='col'>head 5</th>
    <th scope='col'>head 6</th>
    <th scope='col'>head 7</th>
    <th scope='col'>head 8</th>
    <th scope='col'>head 9</th>
    <th scope='col'>head 10</th>
    <th scope='col'>head 11</th>
    <th scope='col'>head 12</th>
    <th scope='col'>head 13</th>
    <th scope='col'>head 14</th>
    <th scope='col'>head …
Run Code Online (Sandbox Code Playgroud)

html css

5
推荐指数
1
解决办法
1407
查看次数

使用ftrace和kprobes捕获用户空间程序集(通过使用虚拟地址转换)?

对于冗长的帖子道歉,我在以较短的方式制定它时遇到了麻烦.此外,这可能更适合Unix和Linux Stack Exchange,但我会先在SO处尝试,因为有一个ftrace标签.

无论如何 - 我想观察用户程序的机器指令是否在完全function_graph捕获的上下文中执行ftrace.一个问题是我需要这个旧内核:

$ uname -a
Linux mypc 2.6.38-16-generic #67-Ubuntu SMP Thu Sep 6 18:00:43 UTC 2012 i686 i686 i386 GNU/Linux
Run Code Online (Sandbox Code Playgroud)

......在这个版本中,没有UPROBES- 正如3.5 [LWN.net]中的Uprobes应该能够做到这一点.(只要我不需要修补原始内核,我就会愿意尝试使用树构建的内核模块,因为User-Space Probes(Uprobes)[chunghwan.com]似乎可以证明;但是至于我可以从0看到:基于Inode的uprobes [LWN.net],2.6可能需要一个完整的补丁)

但是,在这个版本上,有一个/sys/kernel/debug/kprobes,和/sys/kernel/debug/tracing/kprobe_events; 和Documentation/trace/kprobetrace.txt意味着可以直接在地址上设置kprobe; 即使我无法在任何地方找到如何使用它的例子.

在任何情况下,我仍然不确定使用什么地址 - 作为一个小例子,假设我想跟踪程序main功能的开始wtest.c(包括在下面).我可以这样做来编译并获得一个机器指令汇编列表:

$ gcc -g -O0 wtest.c -o wtest
$ objdump -S wtest | less
...
08048474 <main>:
int …
Run Code Online (Sandbox Code Playgroud)

linux debugging ftrace linux-kernel

5
推荐指数
1
解决办法
2311
查看次数