小编lab*_*ito的帖子

CentOS:从devtoolset使用GCC 4.7会导致错误地链接libstdc ++(未定义符号)

我正在使用CentOS 6.3的devtoolset-1.0来临时升级GCC版本。尽管我现在可以编译我的C ++应用程序,但最终的二进制文件缺少一些符号:

$ ldd -d -r myapp
$     [..]
$     libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x0000003216e00000)
$     [..]
$ undefined symbol: _ZNSt8__detail15_List_node_base11_M_transferEPS0_S1_    (./myapp)
$ undefined symbol: _ZNSt8__detail15_List_node_base7_M_hookEPS0_      (./myapp)
$ undefined symbol: _ZNSt8__detail15_List_node_base9_M_unhookEv (./myapp)
Run Code Online (Sandbox Code Playgroud)

我发现,这些是一些新功能,在旧的libstdc ++中找不到,但是在较新的libstdc ++中找不到。在我的系统上,同时安装了libstdc ++(默认版本4.4.7)和devtoolset-1.0-libstdc ++-devel(4.7通过devtoolset)。有趣的是,来自devtoolset的libstdc ++再次链接到旧的:

$ cat /opt/centos/devtoolset-1.0/root/usr/lib/gcc/x86_64-redhat-linux/4.7.0/libstdc++.so
$ /* GNU ld script
$    Use the shared library, but some functions are only in
$    the static library, so try that secondarily.  */
$ OUTPUT_FORMAT(elf64-x86-64)
$ INPUT ( /usr/lib64/libstdc++.so.6 -lstdc++_nonshared )
Run Code Online (Sandbox Code Playgroud)

我真正想要的是替换libstdc ++绑定,但是我不知道该如何实现。我已经尝试设置LD_LIBRARY_PATH并指向devtoolset目录,但是libstdc ++仍然设置为旧位置。另外,符号链接也没有成功,因为它是ld脚本而不是实际的共享库。

gcc centos undefined-symbol devtoolset

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

jQuery:加载外部HTML内容; 对插入元素的访问失败

我想通过jQuery将另一个HTML(additional_content.html)中的元素加载到当前的HTML中.我设法加载内容但我无法访问插入的元素,就好像它们没有插入一样.但是,在load语句之后插入alert语句时,我能够访问通过load插入的的元素.在我看来,DOM树不会立即更新.

父文档中的代码片段如下所示:

<div id="content"></div>
<script>
  $("#content").load("additonal_content.html #content table").hide();
  $("#content").find("img").each(function() {
    alert("test");
  });
</script>
Run Code Online (Sandbox Code Playgroud)

*additional_content.html中的表格是(摘录):

<table>
  <tr>
    <td><img src="image1.gif"></td>
    <td>some text...</td>
  </tr>
  <tr>
    <td><img src="image2.gif"></td>
    <td>some text...</td>
  </tr>
</table>
Run Code Online (Sandbox Code Playgroud)

html jquery dom load

4
推荐指数
1
解决办法
3813
查看次数

Python:避免使用LXML进行DTD验证

我从2001年开始以SGML格式解析USPTO专利.在每个文件的顶部,引用外部DTD.不幸的是,这个DTD似乎无效.有效性检查确认:

Line 361
Error: A '(' character or an element type is required within declaration of element type "ADR".
<!ELEMENT ADR  - - (OMC?,STR*,CITY?,CNTY?,STATE?,CTRY?,PCODE?,EAD*,TEL*,FAX* ...
Run Code Online (Sandbox Code Playgroud)

但是,我不需要验证要处理的SGML文件.我只需要SGML解析器来了解实体.目前,我正在使用Python和LXML库.我将XMLParser称为如下:

parser = etree.XMLParser(target=SimpleXMLHandler(), resolve_entities=False, load_dtd=dtd, dtd_validation=False, recover=True)  
Run Code Online (Sandbox Code Playgroud)

但是,我仍然在线361中立即得到外部DTD无效的错误.我该如何避免这个问题?我不是DTD的实现者,所以我不愿意修复它.

问候!

python lxml dtd

3
推荐指数
1
解决办法
858
查看次数

标签 统计

centos ×1

devtoolset ×1

dom ×1

dtd ×1

gcc ×1

html ×1

jquery ×1

load ×1

lxml ×1

python ×1

undefined-symbol ×1