top of page

Libzmq Library And Headers Are Required



You need to install the 0MQ library and the perl headers (usually the perl-dev package on linux) before you attempt installing the Perl bindings. Once that is done, you can install the ZMQ::LibZMQ3 Perl module (and other ZMQ::* family) like any other Perl module from CPAN (possibly as root user):


And here you seem not to have installed libzmq on your system. But it is referenced by this custom wrapper shared library, not incorporated into it, so if the Linux elf loader can't find a shared library that exports these symbols it posts above message.




libzmq library and headers are required



So in relation to that Call Function Node doesn't find the library you suggest that libzmq cannot be found by ELF file (The question is: which one when I run vi in LabVIEW ide? just ./labview ?). But ok, not best but "a test" will be to check if the default loader can find dynamically load library (libzmq) which is used by the wrapper (lvzmq64.so)


Those implicit warnings could be actually due to version conflicts. Those libxxxxxx libraries are open source and tend to be developed over time. It is not very common that functions just disappear when a new version is released, usually there are at least macros to declare a mapping to a new function name, so that backwards compatibility can be offered. So if you get these errors and it is not because you simply have buggy headers, the most likely cause is that your source code was developed against a newer version of the library.


Under Linux it is common that you install a library and its headers at the same time. Sometimes a package is divided into the library only part which contains all binary components and sometimes documentation, a development part which contains the headers and source code as well as tests for the library. Sometimes the headers are also installed by the binary package to allow developing depending code.


So likely the problem is not that you do not have libzmq installed at all but instead you have an older version installed than what was used to develop the LabVIEW bindings. That means that zmq.h is present on your system and can be correctly included by the source code for the wrapper but it doesn't declare certain functions that are used by the LabVIEW wrapper and the according binary library doesn't contain those functions either of course.


1) try to install a more up to date libzmq for your system. This simply solves all your problems but may be not always trivial. NI does not go and rebuild libraries for older NI Linux RT systems and unfortunately the nature of Linux makes it necessary to build the libraries and tools with the kernel headers that match the kernel version used for a particular Linux system. Since the NI Linux RT version is specifically tied to the used LabVIEW version, you can't just go and download a different NI Linux RT version for your target without also updating your LabVIEW version. And you can't simply take a shared library and header from a newer NI Linux RT system and copy it onto your system as that might simply move the symbol mixup one dependency level higher but not resolve it. So if you want to go this path without moving the a newer LabVIEW version you may actually have to download the sources for libzmq, copy them to your cRIO and compile them yourselves into the correct shared library and then install it together with the headers. With the typical make toolchain used for many libraries that is basically a move into the source directory for a library with "cd ........", then typing "./configure", "make", and "make install" on the command line, but in true Linux manner there are many other make toolchains a library developer can choose from (or none at all and just leave everything to the end user) and you will have to read the documentation for your library to see how you have to compile it from source. Of course you also have to make sure that the GNU C compiler tools are installed on your system. This is done on the command line by typing "opkg update", "opkg install packagegroup-core-buildessential" and of course your device needs to have a valid internet connection to be able to contact the NI package feeds.


Get the C compiler flags required to compile a program that uses libzmq. This is a shortcut for constructing a -I flag using "inc_dir". In scalar context, the flags are quoted using String::ShellQuote and returned as a single string.


Get the linker flags required to link a program against libzmq. This is a shortcut for constructing a -L flag using "lib_dir", plus -lzmq. In scalar context, the flags are quoted using String::ShellQuote and returned as a single string.


At the end of the process, we want to have a vcx.framework folder containing a binary file compiled for all required architectures together. This binary file will be combined from libvcx library and all its dependencies libindy, libssl, libcrypto, libsodium and libzmq.


This still not over. To call output libvcxall.a library from our code we need to wrap it with Objective-C and c-callable headers. First, we copy the libvcxall.a to indy-sdk/vcx/wrappers/ios/vcx which contains these headers and then we use xcodebuild and lipo utility to create our final vcx.framework.


Windows installers are available with the different releases. The release includes zip archives with static libraries containing both the Debug version and Release version for several versions of Visual Studio. There is also an installer and zip file for getting the HELICS apps and shared library along with pre-built Python 3.6 and Java 1.8 interfaces. There is also an archive with just the C shared library and headers, intended for use with 3rd party interfaces.


  • Other Packages Related to libzmq3-dev depends

  • recommends

  • suggests

  • enhances

dep:libkrb5-dev headers and development libraries for MIT Kerberos dep:libnorm-dev NACK-Oriented Reliable Multicast (NORM) library dep:libpgm-dev (>= 5.2.122dfsg) OpenPGM development files dep:libsodium-dev Network communication, cryptography and signaturing library - headers dep:libzmq5 (= 4.3.2-2ubuntu1) lightweight messaging kernel (shared library) Download libzmq3-dev Download for all available architectures ArchitecturePackage SizeInstalled SizeFiles amd64444.5 kB2,519.0 kB [list of files] arm64436.9 kB2,506.0 kB [list of files] armhf430.9 kB1,809.0 kB [list of files] i386482.9 kB2,110.0 kB [list of files] ppc64el492.7 kB2,957.0 kB [list of files] s390x421.6 kB2,425.0 kB [list of files] This page is also available in the following languages: 2ff7e9595c


Recent Posts

See All

Comments


bottom of page