I built the Intel Resource Director Technology library (from https://github.com/intel/intel-cmt-cat), which produces libpqos.so. My goal is to incorporate cache and bandwidth allocation into end-user programs which will be distributed to end users over the internet.
I can't install the pqos library (libpqos.so) on each end user computer, so I had planned to distribute libpqos.so to end users, and link it into my user space program.
I tested the idea copying libpqos.so into the same folder as the source code for the end-user program, and link against it like this:
sudo ld -shared -L/SourceDir My_Program.o -ldl -lrt -lpthread -libpqos -o My_Program.so
and I get "ld: cannot find -libpqos."
I then created a symlink for the libpqos.so file (including the version files libpqos.so.3 and libpqos.so.3.2.0), but I still get " ld: cannot find -libpqos."
Finally I changed it to point to /usr/local/lib, but still "ld: cannot find -libpqos."
From the documentation on github, it appears that the entire RDT library is intended to be used as Linux command line strings, not linked to and called from from user space programs. But if true, that would make it impossible to distribute libpqos.so to end users who have not pre-installed the library.
My questions are:
1. Can libpqos.so be linked into an end-user program (and if so, how)?
2. Can libpqos.so be distributed to end users as described above, or does it have to be pre-installed on each end-user's server?