2016-03-23 24 views
0

Genellikle PHP'de kod yazıyor ve Visual Studio ve C'ye yeni bir giriş yapıyorum - http://www.codeguru.com/cpp/data/data-misc/xml/article.php/c14893/Libxml2-Everything-You-Need-in-an-XML-Library.htm - üç dosya indirdim - libxml, iconv, zlib. Diyor ki, iconv ve zlib libxml2 için bağımlılıklar.Visual Studio 2015 neden iconv.h, libxml2 dosya bağımlılığını bulamadı?

Benim kod aşağıda:

benim indirilen pakette
#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; 
    } 

, ben klasörler - iconv-1.9.2.win32, libxml2-2.7.8.win32, zlib-1.2.5.win32. - workspace\libxml\libxml2-2.7.8.win32\libxml2-2.7.8.win32\include

  1. Project > Properties > C/C++->General > Additional Include Directories: -

    Yukarıda indirilen buradan [Tüm bu klasörleri workspace\libxml klasörünün içindeki yan yana yatarken] ftp://ftp.zlatkovic.com/libxml/

    ben Proje Özellikleri aşağıdaki yolu girmiş

  2. Project > Properties > Linker > General > Additional Library Directories - workspace\libxml\iconv-1.9.2.win32\iconv-1.9.2.win32\include

zlib klasör yolunu nereye koyacağımı bilmiyorum. (İlk soru) Ben şu hataları Visual Studio Professional 2015 (Windows 8, 64 bit) çözümü inşa var: değil açık kaynak dosyası "iconv.h"

  1. can

  2. C1083 Can not 'iconv.h': açık dosya eklemek böyle bir dosya veya dizin

GTK: benim yarattığım: Dosya> Proje> VC++> Boş Project

My que stiller şunlardır:

  1. Her üç klasörden (indirilen paketten) belirli bir yolu nereye koymalıyım?

  2. Tek başına bir uygulama oluşturmalıyım, bu yüzden libxml2 Dll'yi statik olarak bağlamak zorundayım, doğru mu gidiyorum?

+0

#include 'yerine" #include "dosyasını kullanın. Henüz temel bilgileri bilmiyorsanız asla boş bir proje ile başlamayın. –

+0

@HansPassant Ne önerdiğini denedim, bu hiç farketmedi. Problem '# include' ifadeleri değil,' 'include' 'dosyasındaki dosyalardan birinde' iconv.h' dosyasını bulamadığı için 'Project Properties' ve 'Project Properties' problemlerinin olması gerekir. –

+0

"iconv.h" nerede bulunur? Windows Arama ile aramayı deneyin. Büyük olasılıkla ek başlık dosyalarınıza "workspace \ libxml \ iconv-1.9.2.win32 \ iconv-1.9.2.win32 \ include" yolunu eklemeniz gerekecektir. Ek kütüphaneler, yolları çeşitli * .lib dosyalarına yerleştirdiğiniz yerdir. – thurizas

cevap

0

arama yolları oluşturma

...

1) derlerken için, her uç içerdiğini, 3 arama yolları olacaktır.

2) kütüphaneler için, her lib'de sonlanan 3 arama yolu olacaktır.

Ana sorun, * .h dosyalarının yollarının, üç yolun tümüne sahip olacak şekilde genişletilmesi gerektiğidir.

Kitaplıklara giden yolların, üç yolun tümüne sahip olacak şekilde genişletilmesi ve bu yolların, başlık dosyalarını içeren dizinler değil, kitaplıkları içeren dizinlerde bitmesi gerekir.