QT CMarkUp(XMLParser) 错误。 iconv.h:没有这样的文件或目录

Posted

技术标签:

【中文标题】QT CMarkUp(XMLParser) 错误。 iconv.h:没有这样的文件或目录【英文标题】:QT CMarkUp(XMLParser) error . iconv.h: no such file or director 【发布时间】:2011-03-14 02:24:18 【问题描述】:

大家好, 我陷入了一个错误很长时间,无法弄清楚它是什么。我正在使用 CMarkup 类 (xml Parser) 来解析在 VC++ 中完美运行的 XML 文件。当我将它移到 QT 中时,它开始抛出一些我很难修复的奇怪错误。它说

iconv.h: no such file or director
expected; before cd , etc.

我查看了 CMArkup 网站,上面写着

MARKUP_ICONV 模式当前是 基于 g++ 自动选择 在 GNUC 预定义的宏上。 同样,您可以关闭 iconv 使用 通过将 MARKUP_STDCONV 添加到您的 项目预处理器定义,或 在命令行上 -DMARKUP_STDCONV。 g++ main.cpp Markup.cpp MarkupTest.cpp -DMARKUP_STDCONV

我尝试了一切,但仍然存在问题。有没有人遇到过类似的问题可以帮我解决这个问题。

【问题讨论】:

我目前正在使用 Windows :) 澄清一下:图像显示了通过定义 MARKUP_WINCONV 解决的 iconv.h 问题,但仍然存在 fseeko 和 swprintf 问题,可以通过以下评论中的#if 定义更改来解决。感谢您的跟进。注意:CMarkup 11.5+ 不需要这些变通方法。 【参考方案1】:

如果您想将定义添加到您的 Qt 项目中,请将此行添加到您的 .pro 文件中:

QMAKE_CXXFLAGS += -DMARKUP_STDCONV

【讨论】:

感谢您的回答。我使用了 Markup_winconv 解决了该错误。但他们抛出了一些额外的错误,如上面在标记中显示的错误。附上问题的屏幕截图。你有什么想法 其他错误的答案: fseeko 和 ftello 可以通过将 Markup.h:218 更改为 #if defined(GNUC_ZNIX) 来解决,这样它实际上会将 MCD_FSEEK 定义为 fseek等 swprintf 问题,在 Markup.h 中找到以下内容: #if defined(GNUC) #define MCD_SSZ(sz) sz,(sizeof(sz)/sizeof(MCD_CHAR)) 并更改GNUCGNUC_ZNIX 如下: #if defined(GNUC_ZNIX) #define MCD_SSZ(sz) sz,(sizeof(sz)/sizeof(MCD_CHAR ))

以上是关于QT CMarkUp(XMLParser) 错误。 iconv.h:没有这样的文件或目录的主要内容,如果未能解决你的问题,请参考以下文章

DuiLib 源码分析之解析xml类CMarkup & CMarkupNode cpp文件

XML文件内容如何读取(C或C++)

重复符号链接器错误(C++ 帮助)

在 swift 中解析 XML 失败并出现 nil 错误

Groovy XmlSlurper 与 XmlParser

Swift4 中的 Codable 和 XMLParser