Closed ianhi closed 1 year ago
An alternate solution would be change how the c++ is distributed. It seems as though currently you are compiling the libraries on your computer and adding them to git. Instead you could use cibuildwheel
to automatically build them for each OS. This would solve the GLIBC issue for me because the current majorly used manylinux
is manylinux2014
https://github.com/pypa/manylinux#manylinux which supports CentOS7. The extra benefit here is that versions of what is supported is tied to the standardize source of the manylinux environrments. The downside is that this is would be more work to implement.
After looking around a bit it seems that building with static
comes with some problems and may not be as simple as I'd hoped.
I do still think that switching to cibuildwheel and building OS specific wheels comes with some benefits, but may be decent work. So in the meantime I'm just building it myself on the cluster which seems to work fine.
Thanks @ianhi - The cibuildwheel
approach looks like an interesting solution. We'll take a look, but you should also feel free to do a PR if you have the energy to tackle it!
downloading eigen and building the c++ can happen with the CIBW_BEFORE_BUILD
optoin: https://cibuildwheel.readthedocs.io/en/stable/options/#examples_10`
Related #198
Hi @ianhi, thanks for the idea on cibuildwheels
. @p-j-smith and I had a look, and it did indeed prove a bit tricky! For now, we have added #231 which at least builds the binaries in CI so is better than the current workflow. I have raised a new issue in #235 to explain the changes that would be needed to have a better CI using cibuildwheels
. If you have any tips/advice, would be great if you could pop it in that issue for now. Cheers 🙏
Hi,
I've been trying to run this on my universities cluster and with version
0.4.6
and up the following code gives an error:Running
ldd --version
gives:ldd (GNU libc) 2.17
.I suspect that the easy fix here to allow this library to work on older glibc version is build it as a static library. Specifically from reading around it seems that changing this line: https://github.com/quantumjot/BayesianTracker/blob/9f08f1c0ff21ef2c9c64fc55e084c97ebc7d3e9a/Makefile#L38 to
-DBUILD_SHARED_LIB=OFF
might do the trick.If you think this would be a worthwhile solution then I would be happy to make a PR.