Hi everyone<div><br></div><div>I am trying to compile a C++ program which uses libvirt to connect to an ESXi host. I got the code running if I wrote it in C, directly in the hellolibvirt.c example. However, I am now trying to compile that code in a C++ file which is not inside the example directory.</div>
<div><br></div><div>I tried to compile with the following command:</div><div><div>g++ -g -D debug=1 -c -llibvirt ESXWrapper.cpp</div><div>g++ -g -D debug=1 -o ESXWrapper ESXWrapper.o</div></div><div><br></div><div>The first line passes and creates ESXWrapper.o file. But when I run the second line, it gives me the following error:</div>
<div>---</div><div><div>g++ -g -D debug=1 -c -llibvirt ESXWrapper.cpp</div><div>g++ -g -D debug=1 -o ESXWrapper ESXWrapper.o</div><div>ESXWrapper.o: In function `VPopCWrapper':</div><div>/home/wyssen/school/Dropbox/virtualPOPC-1/NEW/vpopcwrapper/ESXWrapper.cpp:124: undefined reference to `virConnectOpenAuth'</div>
<div>/home/wyssen/school/Dropbox/virtualPOPC-1/NEW/vpopcwrapper/ESXWrapper.cpp:133: undefined reference to `virConnectGetURI'</div><div>/home/wyssen/school/Dropbox/virtualPOPC-1/NEW/vpopcwrapper/ESXWrapper.cpp:144: undefined reference to `virConnectClose'</div>
<div>/home/wyssen/school/Dropbox/virtualPOPC-1/NEW/vpopcwrapper/ESXWrapper.cpp:124: undefined reference to `virConnectOpenAuth'</div><div>/home/wyssen/school/Dropbox/virtualPOPC-1/NEW/vpopcwrapper/ESXWrapper.cpp:133: undefined reference to `virConnectGetURI'</div>
<div>/home/wyssen/school/Dropbox/virtualPOPC-1/NEW/vpopcwrapper/ESXWrapper.cpp:144: undefined reference to `virConnectClose'</div><div>ESXWrapper.o: In function `showError':</div><div>/home/wyssen/school/Dropbox/virtualPOPC-1/NEW/vpopcwrapper/ESXWrapper.cpp:186: undefined reference to `virConnCopyLastError'</div>
<div>/home/wyssen/school/Dropbox/virtualPOPC-1/NEW/vpopcwrapper/ESXWrapper.cpp:202: undefined reference to `virResetError'</div><div>collect2: ld returned 1 exit status</div><div>make: *** [all] Error 1</div></div><div>
---</div><div><br></div><div>My makefile is the follwing:</div><div>---</div><div><div>#vars</div><div>CC=g++</div><div>OUTPUTFILE=ESXWrapper</div><div>O_FILES=ESXWrapper.o</div><div>FLAGS=-g -D debug=1</div><div><br></div>
<div><br></div><div>.PHONY: all</div><div>all: esxwrapper</div><div><span class="Apple-tab-span" style="white-space:pre">     </span>$(CC) $(FLAGS) -o $(OUTPUTFILE) $(O_FILES)</div><div><br></div><div>esxwrapper: ESXWrapper.cpp VPopCWrapper.h</div>
<div><span class="Apple-tab-span" style="white-space:pre">      </span>$(CC) $(FLAGS) -c -llibvirt ESXWrapper.cpp</div><div><br></div><div><br></div><div>.PHONY: run</div><div>run: all</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>./bignum</div>
<div><br></div><div><br></div><div>.PHONY: clean</div><div>clean:</div><div><span class="Apple-tab-span" style="white-space:pre">   </span>rm -f $(O_FILES)</div><div><br></div><div>.PHONY: clean_all</div><div>clean_all: clean</div>
<div><span class="Apple-tab-span" style="white-space:pre">      </span>rm -f $(OUTPUTFILE)</div></div><div>---</div><div><br></div><div>Can anybody give me a hint, how to link correctly to libvirt. And also tell me, if there are special functions to use with C++, other than the examples provided in the source code, which are written in C.</div>
<div><br></div><div>Thank you</div><div>Adrian</div>