2016-03-17 3 views
-1

virConnectCreateXML делает, кажется, работает для меня я создал следующую программу и компилируюсь, но она, кажется, некоторые связывающие проблемы или какое-то проблемы, поэтому я получить эти ошибкикто может создать простую программу Libvirt которая только начинается доменом

me.cpp: In function ‘int main(int, char**)’: 
me.cpp:21:45: error: ‘virConnectCreateXML’ was not declared in this scope 
dom = virConnectCreateXML(conn, xmlconfig, 0); 
              ^
me.cpp:24:5: error: return-statement with no value, in function returning ‘int’ [-fpermissive] 
    return; 
    ^
me.cpp:26:57: error: ‘virDomainName’ was not declared in this scope 
fprintf(stderr, "Guest %s has booted", virDomainName(dom)); 
                ^

Программа:

/* example ex9.c */ 
    /* compile with: gcc -g -Wall ex9.c -o ex9 -lvirt */ 

    #include <stdio.h> 
    #include <stdlib.h> 
    #include <libvirt/libvirt.h> 

     int main(int argc,char *argv[]){virConnectPtr conn; 
     char *host; 
     conn = virConnectOpen("qemu:///system"); 
     if (conn == NULL) { 
      fprintf(stderr, "Failed to open connection to qemu:///system\n"); 
      return 1; 
     }   
     virDomainPtr dom; 
     const char *xmlconfig = "<domain type='kvm'> 
     <name>win7</name> 
     <uuid>3666e50e-c616-42eb-aec8-b7fb1ad5f8f9</uuid> 
     <memory unit='KiB'>2072576</memory> 
     <currentMemory unit='KiB'>2072576</currentMemory> 
     <vcpu placement='static'>2</vcpu> 
     <os> 
     <type arch='x86_64' machine='pc-i440fx-2.5'>hvm</type> 
     <boot dev='hd'/> 
     </os> 
     <features> 
     <acpi/> 
     <apic/> 
     <hyperv> 
      <relaxed state='on'/> 
      <vapic state='on'/> 
      <spinlocks state='on' retries='8191'/> 
     </hyperv> 
     <vmport state='off'/> 
     </features> 
     <cpu mode='host-model'> 
     <model fallback='allow'/> 
     </cpu> 
     <clock offset='localtime'> 
     <timer name='rtc' tickpolicy='catchup'/> 
     <timer name='pit' tickpolicy='delay'/> 
     <timer name='hpet' present='no'/> 
     <timer name='hypervclock' present='yes'/> 
     </clock> 
     <on_poweroff>destroy</on_poweroff> 
     <on_reboot>restart</on_reboot> 
     <on_crash>restart</on_crash> 
     <pm> 
     <suspend-to-mem enabled='no'/> 
      <suspend-to-disk enabled='no'/> 
     </pm> 
     <devices> 
     <emulator>/usr/sbin/qemu-system-x86_64</emulator> 
     <disk type='file' device='disk'> 
      <driver name='qemu' type='qcow2'/> 
      <source file='/var/lib/libvirt/images/win7.qcow2'/> 
      <target dev='hda' bus='ide'/> 
      <address type='drive' controller='0' bus='0' target='0' unit='0'/> 
     </disk> 
     <disk type='file' device='cdrom'> 
      <driver name='qemu' type='raw'/> 
      <source file='/home/dravigon/win7.iso'/> 
      <target dev='hdb' bus='ide'/> 
      <readonly/> 
      <address type='drive' controller='0' bus='0' target='0' unit='1'/> 
     </disk> 
     <controller type='usb' index='0' model='ich9-ehci1'> 
      <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x7'/> 
     </controller> 
     <controller type='usb' index='0' model='ich9-uhci1'> 
      <master startport='0'/> 
      <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0' multifunction='on'/> 
     </controller> 
     <controller type='usb' index='0' model='ich9-uhci2'> 
      <master startport='2'/> 
      <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x1'/> 
     </controller> 
     <controller type='usb' index='0' model='ich9-uhci3'> 
      <master startport='4'/> 
      <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x2'/> 
     </controller> 
     <controller type='pci' index='0' model='pci-root'/> 
     <controller type='ide' index='0'> 
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/> 
     </controller> 
     <controller type='virtio-serial' index='0'> 
      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/> 
     </controller> 
     <interface type='direct'> 
      <mac address='52:54:00:56:27:95'/> 
      <source dev='enp3s0' mode='bridge'/> 
      <model type='rtl8139'/> 
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> 
     </interface> 
     <serial type='pty'> 
      <target port='0'/> 
     </serial> 
     <console type='pty'> 
      <target type='serial' port='0'/> 
     </console> 
     <channel type='spicevmc'> 
      <target type='virtio' name='com.redhat.spice.0'/> 
      <address type='virtio-serial' controller='0' bus='0' port='1'/> 
     </channel> 
     <input type='tablet' bus='usb'/> 
     <input type='mouse' bus='ps2'/> 
     <input type='keyboard' bus='ps2'/> 
     <graphics type='spice' autoport='yes'> 
      <image compression='off'/> 
     </graphics> 
     <sound model='ich6'> 
      <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/> 
     </sound> 
     <video> 
      <model type='vga' vram='16384' heads='1'/> 
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> 
     </video> 
     <redirdev bus='usb' type='spicevmc'> 
     </redirdev> 
     <redirdev bus='usb' type='spicevmc'> 
     </redirdev> 
     <memballoon model='virtio'> 
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/> 
     </memballoon> 
     </devices> 
    </domain>"; 
    dom = virConnectCreateXML(conn, xmlconfig, 0); 
    if (!dom) { 
     fprintf(stderr, "Domain creation failed"); 
     return; 
    } 
    fprintf(stderr, "Guest %s has booted", virDomainName(dom)); 
    virDomainFree(dom); 


     virConnectClose(conn); 
     return 0; 
    } 

помощь благодарил в объявлении Вэнс

+0

'Const символ * xmlconfig =«<домен типа = „КМК“> 'должен иметь обратную косую черту в конец каждой строки строки, за исключением последней, имеющей заключительную цитату. –

+0

dint u см. Конец этой декларации, где указано значение ive – dravigon

+0

Да, и это абсолютно фантастично, что вы включаете заключительную цитату при объявлении строки. Проблема в том, что вам нужна обратная косая черта в конце каждой строки строки. Если бы вы обратили внимание на мой первый комментарий, вы бы это знали. См. [Этот пост] (http://stackoverflow.com/questions/1135841/c-multiline-string-literal) о многострочных строковых литералах. –

ответ

0

да обнаружили проблему функции virConnectCreateXML
и его relaced функцией
virDomainCreateXML

+0

спасибо @captain obvlious – dravigon

Смежные вопросы