- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在 C++ 中使用 libxml2 库,但出现一些我不知道如何解决的错误。我的代码是该库的一个基本示例。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <libxml/xmlmemory.h>
#include <libxml/parser.h>
void
parseStory (xmlDocPtr doc, xmlNodePtr cur) {
xmlChar *key;
cur = cur->xmlChildrenNode;
while (cur != NULL) {
if ((!xmlStrcmp(cur->name, (const xmlChar *)"keyword"))) {
key = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1);
printf("keyword: %s\n", key);
xmlFree(key);
}
cur = cur->next;
}
return;
}
static void
parseDoc(char *docname) {
xmlDocPtr doc;
xmlNodePtr cur;
doc = xmlParseFile(docname);
if (doc == NULL ) {
fprintf(stderr,"Document not parsed successfully. \n");
return;
}
cur = xmlDocGetRootElement(doc);
if (cur == NULL) {
fprintf(stderr,"empty document\n");
xmlFreeDoc(doc);
return;
}
if (xmlStrcmp(cur->name, (const xmlChar *) "story")) {
fprintf(stderr,"document of the wrong type, root node != story");
xmlFreeDoc(doc);
return;
}
cur = cur->xmlChildrenNode;
while (cur != NULL) {
if ((!xmlStrcmp(cur->name, (const xmlChar *)"storyinfo"))){
parseStory (doc, cur);
}
cur = cur->next;
}
xmlFreeDoc(doc);
return;
}
int
main(int argc, char **argv) {
char *docname;
if (argc <= 1) {
printf("Usage: %s docname\n", argv[0]);
return(0);
}
docname = argv[1];
parseDoc (docname);
return (1);
}
我在构建项目时遇到了这些错误。
/cygdrive/c/Users/robin/Documents/NetBeansProjects/xml/main.cpp:26: undefined reference to `xmlStrcmp'
/cygdrive/c/Users/robin/Documents/NetBeansProjects/xml/main.cpp:26:(.text+0x36): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `xmlStrcmp'
/cygdrive/c/Users/robin/Documents/NetBeansProjects/xml/main.cpp:27: undefined reference to `xmlNodeListGetString'
/cygdrive/c/Users/robin/Documents/NetBeansProjects/xml/main.cpp:27:(.text+0x59): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `xmlNodeListGetString'
build/Debug/Cygwin-Windows/main.o: In function
parseDoc':
xmlParseFile'
/cygdrive/c/Users/robin/Documents/NetBeansProjects/xml/main.cpp:42:
undefined reference to/cygdrive/c/Users/robin/Documents/NetBeansProjects/xml/main.cpp:42:(.text+0xad): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `xmlParseFile'
/cygdrive/c/Users/robin/Documents/NetBeansProjects/xml/main.cpp:49: undefined reference to `xmlDocGetRootElement'
/cygdrive/c/Users/robin/Documents/NetBeansProjects/xml/main.cpp:49:(.text+0xec): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `xmlDocGetRootElement'
/cygdrive/c/Users/robin/Documents/NetBeansProjects/xml/main.cpp:53: undefined reference to `xmlFreeDoc'
/cygdrive/c/Users/robin/Documents/NetBeansProjects/xml/main.cpp:53:(.text+0x126): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `xmlFreeDoc'
/cygdrive/c/Users/robin/Documents/NetBeansProjects/xml/main.cpp:57: undefined reference to `xmlStrcmp'
/cygdrive/c/Users/robin/Documents/NetBeansProjects/xml/main.cpp:57:(.text+0x142): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `xmlStrcmp'
/cygdrive/c/Users/robin/Documents/NetBeansProjects/xml/main.cpp:59: undefined reference to `xmlFreeDoc'
/cygdrive/c/Users/robin/Documents/NetBeansProjects/xml/main.cpp:59:(.text+0x17a): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `xmlFreeDoc'
/cygdrive/c/Users/robin/Documents/NetBeansProjects/xml/main.cpp:65: undefined reference to `xmlStrcmp'
/cygdrive/c/Users/robin/Documents/NetBeansProjects/xml/main.cpp:65:(.text+0x1a6): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `xmlStrcmp'
/cygdrive/c/Users/robin/Documents/NetBeansProjects/xml/main.cpp:72: undefined reference to `xmlFreeDoc'
/cygdrive/c/Users/robin/Documents/NetBeansProjects/xml/main.cpp:72:(.text+0x1d9): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `xmlFreeDoc'
build/Debug/Cygwin-Windows/main.o:main.cpp:(.rdata$.refptr.xmlFree[.refptr.xmlFree]+0x0): undefined reference to `xmlFree'
我读过这篇文章 What does this GCC error "... relocation truncated to fit..." mean? ,但我不知道如何解决我的问题。我的 IDE 是在 Windows 10 64 位机器上使用 Cygwin64 的 Netbeans 8.2。我包括了 libxml2-2.9.3-win32-x86_64.7z 和 iconv-1.14-win32-x86_64.7z。希望您能帮帮我,谢谢。
最佳答案
你是如何安装这个库的?
我几天前遇到了同样的问题 Curl ,经过数小时的谷歌搜索和挖掘网络的每个角落以找到解决方案(因为我还是个新手),我终于找到了。
适用于我的解决方案可能不适用于您,但仍然值得尝试一下,请按照以下步骤操作:
./configure
和make
一样简单)<-v
标志可以提供帮助)-llibname
(例如-llibxml
)。此选项 Search the library named libname when linking. 祝你好运!
关于c++ - 如何解析 "relocation truncated to fit: R_X86_64_PC32 against undefined symbol ` xmlStrcmp'”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41721908/
我正在编译 linux-4.19(gcc-8.2 bintutils-2.31),但是它总是失败并出现如下错误: aarch64-oe-linux-ld.bfd: drivers/platform/g
我在 Macbook Pro 上的 VirtualBox 上运行 Ubuntu 14.04 64 位 MAC。我在 hello_kernel.c 中有以下内容,我想运行它。 #include #in
这是我在 AArch64 上遇到的问题的简化版本: 我有一个宏,可以不断地将一些数据转储到一个部分中。 #define GEN_DATA(_type) \ .pushsection .mydat
我们已经将我们的 subversion 存储库移到了不同的服务器上。我跑了svn swtich --relocate将我的开发工作站存储库更改为新位置。 问题是它看起来像它工作,因为没有报告错误消
这是一个与u-boot相关的基本问题。 为什么 u-boot 代码会自行重定位? 好的,如果 u-boot 是从 NOR-flash 或引导 ROM 空间执行是有道理的,但如果它已经从 SDRAM 运
我们的 svn 存储库的位置已更改为不同的 url,此外主干、分支和标签的相对路径也移动了一点。现在,当我尝试 svn relocate 时,我收到此消息。 无效的重定位目标:'https://my-
当有人这样做时 svn switch ,我知道它将工作目录切换到目标路径。 我想了解 --relocate 的用途。我认为这仅在存储库的 url 发生更改并且想要更新工作副本 url 以指向新的
我正在尝试将工作副本文件夹从旧的专用 svn 服务器移动到新的 svn 服务器,其中包含子文件夹。使用以下重定位命令: svn switch --relocate https://oldserver/
我想用 gfortran 创建一个共享库,出于可移植性的原因将它与静态版本的 libgfortran 链接起来。不幸的是,我没有设法适本地链接不同的对象。我已经找到一些解决类似问题的帖子,但我不知道如
我的应用旨在在 android 6 上运行,据我所知,它不允许加载共享库。 有没有人遇到过这个问题并且能够成功解决? java.lang.UnsatisfiedLinkError: dlopen fa
在我的 Debian x86 32 位中,当我执行 readelf -r/usr/lib/libstdc++.so.6 | grep pthread,我得到这个输出: 000eceac 000062
我想知道为什么某些 Windows 可执行文件确实有重定位。与 DLL 不同,当可执行文件始终可以加载到任何虚拟地址时,为什么需要它? 最佳答案 是的,EXE 中的重定位是可选的,可以去除。但如果我们
我无法在我的 linux 电脑上编译任何东西。我不知道为什么,可能是我安装了一些软件包并弄得一团糟。我已经卸载并重新安装了 gcc 和其他软件包,但没有好消息.. 仍然是这个问题。 这是消息: /us
我正在 Nexus 5 上测试 Android 6.0,我正在使用 Metaio(我知道该服务将于 12 月 15 日结束,但在那一天我们将转移到另一个 AR 平台)。问题是当我启动 ARActivi
我正在尝试将静态库链接到共享库,但出现以下错误 /usr/bin/ld: ../../../libraries/log4cplus/liblog4cplus.a(fileappender.o): re
如果你做 dumpbin/header 它会给你所有 7 个部分的数据转储。 。数据 .idata .rdata .reloc .rsrc 。文本 .textbss 其中 .rsrc 和 .idata
这个问题的变体已被问过很多次,但没有一个答案阐明我感兴趣的内容: 我想(显然...:) 将我的本地工作副本与两个不同服务器上的两个存储库同步。如果我将 svn switch 与 --relocate
我正在尝试为ATmega328 micro编译一些代码,并且我想使用Arduino的库和核心。我正在使用CMake。我已经编译了核心库和代码的所有对象以及Arduino的库。但是,当链接时,它们向我显
我是这个社区的新手,因为我以前从未创建过帐户并提出过问题,但我一直使用这个网站来解决我的编程难题。所以谢谢!不过这一次,我找不到另一个符合我确切需求的问题。如果重复,我深表歉意。 我使用的是 elem
鉴于我已经编译了一些 unix 程序,我可能需要做些什么来将它重新定位到不同的目录并让它继续正常运行。 我正在考虑 Perl,但对其他系统(如 Apache)感兴趣,这些系统在完成后似乎也会失败。为了
我是一名优秀的程序员,十分优秀!