Hello, as far as I can tell my problem is similiar to this one, but the problem in there doesn't really seem solved to me, more avoided. But I'm not sure it is actually a problem with my understanding of rust or with cross-compiling. If it's the latter, I will of course look somewhere else for a solution to my problem.
I tried writing a telegram bot with rust and this crate. The bot is done and now, since I have an old Raspberry Pi (Model B) lying around here, I wanted to deploy it there. So I looked into cross-compiling rust. I am on Windows and used Linux Mint in a vm to cross-compile. I'm not really a linux expert, so maybe the problem lays there? But cross-compiling from windows looked a lot more complicated when I looked at it.
First I added the target with
rustup target add arm-unknown-linux-gnueabihf.
Then I followed step 9. from here:
but used the gcc-8 version. And I installed it.
This all works for a simple "Hello World!" project. (Building it with
cargo build --target=arm-unknown-linux-gnueabihf)
But when I tried to built my telegram bot I got this error (might be a bit long, I don't know how to put it into a spoiler):
error: failed to run custom build command for `openssl-sys v0.9.59` Caused by: process didn't exit successfully: `/home/wert007/host/rust_tg_chess_bot/target/debug/build/openssl-sys-d03285efbb51f851/build-script-main` (exit code: 101) --- stdout cargo:rustc-cfg=const_fn cargo:rerun-if-env-changed=ARM_UNKNOWN_LINUX_GNUEABIHF_OPENSSL_LIB_DIR ARM_UNKNOWN_LINUX_GNUEABIHF_OPENSSL_LIB_DIR unset cargo:rerun-if-env-changed=OPENSSL_LIB_DIR OPENSSL_LIB_DIR unset cargo:rerun-if-env-changed=ARM_UNKNOWN_LINUX_GNUEABIHF_OPENSSL_INCLUDE_DIR ARM_UNKNOWN_LINUX_GNUEABIHF_OPENSSL_INCLUDE_DIR unset cargo:rerun-if-env-changed=OPENSSL_INCLUDE_DIR OPENSSL_INCLUDE_DIR unset cargo:rerun-if-env-changed=ARM_UNKNOWN_LINUX_GNUEABIHF_OPENSSL_DIR ARM_UNKNOWN_LINUX_GNUEABIHF_OPENSSL_DIR unset cargo:rerun-if-env-changed=OPENSSL_DIR OPENSSL_DIR unset cargo:rerun-if-env-changed=OPENSSL_NO_PKG_CONFIG cargo:rerun-if-env-changed=PKG_CONFIG_ALLOW_CROSS_arm-unknown-linux-gnueabihf cargo:rerun-if-env-changed=PKG_CONFIG_ALLOW_CROSS_arm_unknown_linux_gnueabihf cargo:rerun-if-env-changed=TARGET_PKG_CONFIG_ALLOW_CROSS cargo:rerun-if-env-changed=PKG_CONFIG_ALLOW_CROSS cargo:rerun-if-env-changed=PKG_CONFIG_arm-unknown-linux-gnueabihf cargo:rerun-if-env-changed=PKG_CONFIG_arm_unknown_linux_gnueabihf cargo:rerun-if-env-changed=TARGET_PKG_CONFIG cargo:rerun-if-env-changed=PKG_CONFIG cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_arm-unknown-linux-gnueabihf cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_arm_unknown_linux_gnueabihf cargo:rerun-if-env-changed=TARGET_PKG_CONFIG_SYSROOT_DIR cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR run pkg_config fail: "pkg-config has not been configured to support cross-compilation.\n\n Install a sysroot for the target platform and configure it via\n PKG_CONFIG_SYSROOT_DIR and PKG_CONFIG_PATH, or install a\n cross-compiling wrapper for pkg-config and set it via\n PKG_CONFIG environment variable." --- stderr thread 'main' panicked at ' Could not find directory of OpenSSL installation, and this `-sys` crate cannot proceed without this knowledge. If OpenSSL is installed and this crate had trouble finding it, you can set the `OPENSSL_DIR` environment variable for the compilation process. Make sure you also have the development packages of openssl installed. For example, `libssl-dev` on Ubuntu or `openssl-devel` on Fedora. If you're in a situation where you think the directory *should* be found automatically, please open a bug at https://github.com/sfackler/rust-openssl and include information about your system as well as this message. $HOST = x86_64-unknown-linux-gnu $TARGET = arm-unknown-linux-gnueabihf openssl-sys = 0.9.59
I mean I have
libssl-dev installed for the host system, but probably not for my target system. And know I'm a little lost what I could do next. I tried building my project on the raspberry, and while all the dependencies get compiled my own project seems to fail.
This is my first time posting here, I hope the formatting is all right, and my english as well.
Thanks for reading until here!