Hello Benjamin,

one can quickly check files for compilation in e.g. the DEB package libindi-dev

$ dpkg-query -L libindi-dev
/.
/usr
/usr/include
/usr/include/libindi
/usr/include/libindi/abstractbaseclient.h
/usr/include/libindi/alignment
/usr/include/libindi/alignment/AlignmentSubsystemForDrivers.h
/usr/include/libindi/alignment/AlignmentSubsystemForMathPlugins.h
...
/usr/include/libindi/v4l2_decode.h
/usr/lib
/usr/lib/x86_64-linux-gnu
/usr/lib/x86_64-linux-gnu/libindiAlignmentClient.a
/usr/lib/x86_64-linux-gnu/libindiclient.a
/usr/lib/x86_64-linux-gnu/libindidriver.a
/usr/lib/x86_64-linux-gnu/pkgconfig
/usr/lib/x86_64-linux-gnu/pkgconfig/libindi.pc
/usr/share
/usr/share/doc
/usr/share/doc/libindi-dev
/usr/share/doc/libindi-dev/AUTHORS
/usr/share/doc/libindi-dev/NEWS.gz
/usr/share/doc/libindi-dev/README.gz
/usr/share/doc/libindi-dev/changelog.gz
/usr/share/doc/libindi-dev/copyright
/usr/lib/libindiclient.so
/usr/lib/libindidriver.so
/usr/lib/libindilx200.so
/usr/lib/x86_64-linux-gnu/libindiAlignmentDriver.so
/usr/lib/x86_64-linux-gnu/libindiclient.so
/usr/lib/x86_64-linux-gnu/libindidriver.so
/usr/lib/x86_64-linux-gnu/libindilx200.so

Some compiling needs proper path to header (include) files and shared librararies *.so or archive files (.a).
So to be more specific compiling e.g. indi/examples/tutorial_three/simpleccd.cpp
$ g++ simpleccd.cpp -o simpleccd -I/usr/include/libindi -lindiclient -lindidriver && file simpleccd
simpleccd: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=94b50e8cba51f2f174afab03cc6e7a986f3606e4, for GNU/Linux 3.2.0, not stripped

Or e.g.
indi/examples/tutorial_seven
$g++ simple_telescope_simulator.cpp -o simple_telescope_simulator -I/usr/include/libindi -lindiclient -lindidriver && file simple_telescope_simulator
/usr/bin/ld: /tmp/ccESuSgI.o: undefined reference to symbol 'ln_get_julian_from_sys'
/usr/bin/ld: /lib/x86_64-linux-gnu/libnova-0.16.so.0: error adding symbols: DSO missing from command line
complains that libnova is missing, so adding the proper library as an additional parameter "-llibnova" (requires libnova packaged install) and in addition it requires
/usr/lib/x86_64-linux-gnu/libindiAlignmentDriver.so
one can compile it as follows:
$ g++ simple_telescope_simulator.cpp -o simple_telescope_simulator -I/usr/include/libindi -lindiAlignmentDriver -lnova -lindiclient -lindidriver && file simple_telescope_simulator
simple_telescope_simulator: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=13d9b3c7720caec9ea05288289ee79c28e915b43, for GNU/Linux 3.2.0, not stripped

Cheers
Thomas

Read More...