-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Missing cholmod and csparse solver when cross compiling for arm #854
Comments
I assume that you miss the dependencies for the arm architecture. You have them installed for the host architecture but not for the cross compiling tool chain. |
This here was quite helpful Cross CompileI am not using docker but tried in a podman container of Debian bookworm manually.
This installs the libraries for our target architecture. We also need g++/gcc for cross compiling as well as cmake but for our host's architecture.
Then after cloning g2o we can run cmake for cross compiling
You should see that Cholmod / CSparse are found for aarch64:
Next we can build it via And we have
Container with QemuNext we can use an arm64 container for bookworm from https://hub.docker.com/r/arm64v8/debian to test the binaries we build. Using again podman as container manager along with qemu we should see:
And we can run it
Build in arm64 containerAnother approach - not sure if this can help you - but as alternative I build g2o in this container as well (https://hub.docker.com/r/arm64v8/debian). |
Thank you for the response! Followed your advice, however, I am still having issues, updated dockerfile:
Build output:
Suitesparse seems to have been installed:
but cmake is not finding the headers or the libraries. I'm assuming some env var isn't getting set or something, is there a cmake flag I can try to get it looking in the correct spot? |
I was able to get it to work by manually setting
But it results in a very long cmake command. |
Happy that it worked out for you by specifying the lib/includes manually. |
Having issues when attempting to cross compile for arm architecture. When building in WSL, it compiles as normal, however, when trying to cross compile, the
build/g2o/solvers/cholmod
andcsparse
folders and their .so files are missing.Here is my Dockerfile, I borrow OpenCV's aarch64 toolchain file
Any help would be appreciated!
The text was updated successfully, but these errors were encountered: