Skip to content

Cross-compile for aarch64-linux-gnu #532

@arya-pathak

Description

@arya-pathak

Has this crate successfully been compiled for aarch64-linux-gnu? I have installed the crate, switched to nightly, added the target and wrote a build script. Here are the contents of build.rs:

fn main() {
    println!("cargo:rustc-link-lib=gdal");
}

The crates seem to be compiling fine but it breaks at the linking stage. The compiled C binaries of GDAL are for the x86_64 target. Error message:

  = note: /usr/lib/gcc-cross/aarch64-linux-gnu/11/../../../../aarch64-linux-gnu/bin/ld: skipping incompatible /lib/../lib/libgdal.so when searching for -lgdal
          /usr/lib/gcc-cross/aarch64-linux-gnu/11/../../../../aarch64-linux-gnu/bin/ld: skipping incompatible /lib/../lib/libgdal.a when searching for -lgdal
          /usr/lib/gcc-cross/aarch64-linux-gnu/11/../../../../aarch64-linux-gnu/bin/ld: skipping incompatible /usr/lib/../lib/libgdal.so when searching for -lgdal
          /usr/lib/gcc-cross/aarch64-linux-gnu/11/../../../../aarch64-linux-gnu/bin/ld: skipping incompatible /usr/lib/../lib/libgdal.a when searching for -lgdal
          /usr/lib/gcc-cross/aarch64-linux-gnu/11/../../../../aarch64-linux-gnu/bin/ld: skipping incompatible /lib/libgdal.so when searching for -lgdal
          /usr/lib/gcc-cross/aarch64-linux-gnu/11/../../../../aarch64-linux-gnu/bin/ld: skipping incompatible /lib/libgdal.a when searching for -lgdal
          /usr/lib/gcc-cross/aarch64-linux-gnu/11/../../../../aarch64-linux-gnu/bin/ld: skipping incompatible /usr/lib/libgdal.so when searching for -lgdal
          /usr/lib/gcc-cross/aarch64-linux-gnu/11/../../../../aarch64-linux-gnu/bin/ld: skipping incompatible /usr/lib/libgdal.a when searching for -lgdal
          /usr/lib/gcc-cross/aarch64-linux-gnu/11/../../../../aarch64-linux-gnu/bin/ld: cannot find -lgdal: No such file or directory
          /usr/lib/gcc-cross/aarch64-linux-gnu/11/../../../../aarch64-linux-gnu/bin/ld: skipping incompatible /lib/../lib/libgdal.so when searching for -lgdal
          /usr/lib/gcc-cross/aarch64-linux-gnu/11/../../../../aarch64-linux-gnu/bin/ld: skipping incompatible /usr/lib/../lib/libgdal.so when searching for -lgdal
          /usr/lib/gcc-cross/aarch64-linux-gnu/11/../../../../aarch64-linux-gnu/bin/ld: skipping incompatible /lib/libgdal.so when searching for -lgdal
          /usr/lib/gcc-cross/aarch64-linux-gnu/11/../../../../aarch64-linux-gnu/bin/ld: skipping incompatible /usr/lib/libgdal.so when searching for -lgdal
          collect2: error: ld returned 1 exit status

More details on the issue can be found here.

How can I fix this?

cc: @rkshthrmsh

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions