On Wed, 2021-03-31 at 17:01 +0200, Michal Privoznik wrote:
On 3/31/21 7:38 AM, shafnamol N wrote:
> Hi,
> I have installed Libvirt 7.1.0.
> I configured and built libvirt based on instructions from
>
https://libvirt.org/compiling.html <
https://libvirt.org/compiling.html>;;.
> Now I developed a client program to create a VM using an XML file.As the
> API for it is *virDomainCreateXML,* called this API by passing XML file
> .It shows the following error.
> undefined reference to `virDomainCreateXML'.
> I included the header files containing the said API declaration.But need
> to include the library also.
> My question is where do the libvirt library located after building it.
Yes, you need to pass -lvirt when linking. The library is installed
wherever you told it to install. If you ran plain meson with no extra
arguments, then 'meson install' installs library under /usr/local/lib/
or /usr/local/lib64/. So you will need to pass -L/usr/local/lib or
-L/usr/local/lib64 too to the linker.
But there is this switch -Dsystem=true which tells meson to install into
system directories:
meson -Dsystem=true build
meson install -C build
with this you will not need to pass any extra -L arguments to the linker.
Note that the recommended way to obtain this information is via
pkg-config, using something like
$ pkg-config --cflags --libs libvirt
If you get an error about libvirt not being found, you probably need
to run
$ export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
or something along those lines beforehand.
--
Andrea Bolognani / Red Hat / Virtualization