Ich Code normalerweise in PHP, und neu in Visual Studio und C, ich folgte den Schritten hier - http://www.codeguru.com/cpp/data/data-misc/xml/article.php/c14893/Libxml2-Everything-You-Need-in-an-XML-Library.htm und heruntergeladen drei Dateien - libxml, iconv, zlib. Es besagt, dass iconv und zlib Abhängigkeiten für libxml2 sind.Warum konnte Visual Studio 2015 iconv.h nicht finden, eine Dateiabhängigkeit von libxml2?
Mein Code ist unten:
#include <stdio.h>
#include <libxml/parser.h>
#include <libxml/tree.h>
static void print_element_names(xmlNode * a_node)
{
xmlNode *cur_node = NULL;
for (cur_node = a_node; cur_node; cur_node = cur_node->next) {
if (cur_node->type == XML_ELEMENT_NODE) {
printf("node type: Element, name: %s\n",
cur_node->name);
}
print_element_names(cur_node->children);
}
}
int main(int argc, char **argv)
{
xmlDoc *doc = NULL;
xmlNode *root_element = NULL;
if (argc != 2) return(1);
LIBXML_TEST_VERSION // Macro to check API for match with
// the DLL we are using
/*parse the file and get the DOM */
if (doc = xmlReadFile("http://www.w3schools.com/xml/note.xml", NULL, 0)) == NULL){
printf("error: could not parse file %s\n", argv[1]);
exit(-1);
}
/*Get the root element node */
root_element = xmlDocGetRootElement(doc);
print_element_names(root_element);
xmlFreeDoc(doc); // free document
xmlCleanupParser(); // Free globals
return 0;
}
In meinem heruntergeladene Paket, ich habe Ordner - iconv-1.9.2.win32, libxml2-2.7.8.win32, zlib-1.2.5.win32. [Alle diese Ordner Seite innerhalb workspace\libxml
Ordner einander liegen]
ich oben hier heruntergeladen - ftp://ftp.zlatkovic.com/libxml/
Ich trat in den folgenden Pfad in den Projekteigenschaften:
Project > Properties > C/C++->General > Additional Include Directories
-workspace\libxml\libxml2-2.7.8.win32\libxml2-2.7.8.win32\include
-
workspace\libxml\iconv-1.9.2.win32\iconv-1.9.2.win32\include
Ich habe keine Ahnung, wohin zlib
Ordner Pfad setzen. (Erste Frage) ich die Lösung in Visual Studio Professional 2015 (Windows 8, 64 Bit) gebaut und bekam folgende Fehler:
kann nicht Open-Source-Datei "iconv.h"
C1083 kann nicht offen Include-Datei: 'iconv.h': Keine solche Datei oder das Verzeichnis
GTK: ich erstellt: Datei> Projekt> VC++> Leeres Projekt
Mein que sind:
Wo sollte ich, welchen spezifischen Pfad aus allen drei Ordnern (aus dem heruntergeladenen Paket)?
Ich muss eigenständige Anwendung erstellen, also muss ich die libxml2 Dll statisch verknüpfen, gehe ich richtig?
Verwenden Sie '#include" file "' anstelle von '#include'. Beginnen Sie nie mit einem leeren Projekt, wenn Sie die Grundlagen noch nicht kennen. –
@HansPassant Ich habe versucht, was Sie vorgeschlagen, das machte keinen Unterschied. Das Problem ist nicht '# include' Anweisungen, das Problem muss in' Projekteigenschaften' und seinem Pfad liegen, da es nicht in der Lage ist, die Datei 'iconv.h' zu finden, die in einer der Dateien in' # included' Datei –
liegt Wo befindet sich "iconv.h"? Versuchen Sie, mit Windows Search danach zu suchen. Sie müssen diesen Pfad "workspace \ libxml \ iconv-1.9.2.win32 \ iconv-1.9.2.win32 \ include" wahrscheinlich zu Ihren zusätzlichen Header-Dateien hinzufügen. In den zusätzlichen Bibliotheken fügen Sie die Pfade zu verschiedenen * .lib-Dateien hinzu. – thurizas