Skip to content
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

building project fails #2

Open
mamscience opened this issue Apr 9, 2022 · 8 comments
Open

building project fails #2

mamscience opened this issue Apr 9, 2022 · 8 comments

Comments

@mamscience
Copy link

mamscience commented Apr 9, 2022

Hi
Unable to build per your instructions. Could you help out what might be the reason to this?
Platform: MacOs (latest). Rust 1.54 (latest).

`
process didn't exit successfully: '/dev/Rust/target/debug/build/tiledb-sys-a8fff7cd1562e5ec/build-script-build' (exit status: 101)
--- stdout
cargo:rustc-link-lib=dylib=tiledb
cargo:rustc-link-search=native=/dev/Rust/target/debug/build/tiledb-sys-7ccfb55706149010/out/dist/lib

--- stderr
cannot find cmake
make: *** No targets specified and no makefile found. Stop.
make: *** No rule to make target 'install-tiledb'. Stop.
wrapper.hpp:2:10: fatal error: 'tiledb/tiledb' file not found
wrapper.hpp:2:10: fatal error: 'tiledb/tiledb' file not found, err: true
thread 'main' panicked at 'Unable to generate bindings: ()', /.cargo/registry/src/git.luolix.top-1ecc6299db9ec823/tiledb-sys-0.1.1/build.rs:83:10
note: run with 'RUST_BACKTRACE=1' environment variable to display a backtrace

`

@bogdanstate
Copy link
Contributor

From the error message it looks like you're missing cmake. Installation instructions on a Mac are here:

https://cmake.org/install/

(Disclaimer: we did not try compiling this on a Mac, will try running through the instructions myself as soon as I find some time to do it.)

@mamscience
Copy link
Author

mamscience commented Apr 9, 2022

Yes, you're right, I just found out myself as well. Thanks for the reply.

It compiled but it aborts with the following message. I think it's a reference to AWS,...


dyld[28746]: Library not loaded: @rpath/libaws-cpp-sdk-s3.dylib
  Referenced from: /Rust/project/target/debug/build/tiledb-sys-7ccfb55706149010/out/dist/lib/libtiledb.dylib
  Reason: tried: '/Rust/project/target/debug/build/tiledb-sys-7ccfb55706149010/out/dist/lib/libaws-cpp-sdk-s3.dylib' (no such file), 
  '/Rust/project/target/debug/build/tiledb-sys-7ccfb55706149010/out/dist/lib/libaws-cpp-sdk-s3.dylib' (no such file), 
'/Rust/project/target/debug/deps/libaws-cpp-sdk-s3.dylib' (no such file), '/Rust/project/target/debug/libaws-cpp-sdk-s3.dylib' (no such file), 
'/Users/m/opt/anaconda3/envs/ll/lib/rustlib/x86_64-apple-darwin/lib/libaws-cpp-sdk-s3.dylib' (no such file), 
'/Users/m/lib/libaws-cpp-sdk-s3.dylib' (no such file), '/usr/local/lib/libaws-cpp-sdk-s3.dylib' (no such file), 
'/usr/lib/libaws-cpp-sdk-s3.dylib' (no such file)

@bogdanstate
Copy link
Contributor

Yup, looks like you also need the AWS SDK installed. I would try this link: https://docs.aws.amazon.com/sdk-for-cpp/v1/developer-guide/setup-linux.html

@mamscience
Copy link
Author

mamscience commented Apr 10, 2022

Many many thanks for the pointer, it's been a while since i've touch C and Cmaking. Installing S3 part of the AWS SDK didn't solve my issue and I'm reluctant to install the whole SDK as I'm not planning it to use it for cloud.

So I tried install it without the --S3 flag, using TileDB's version 2.21, and bindgen 0.58.2. Unfortunately, Rust buckles, see error below.
Have you encountered this before? Were/are you using nightly builds?
Cheers and thanks in advance

error[E0658]: deriving `Default` on enums is experimental
   --> /Rust/project/target/debug/build/tiledb-rust-209d4e65a1149745/out/bindings.rs:162:25
    |
162 |         #[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
    |                         ^^^^^^^
    |
    = note: see issue #86985 <https://github.com/rust-lang/rust/issues/86985> for more information
    = note: this error originates in the derive macro `Default` (in Nightly builds, run with -Z macro-backtrace for more info)

error: no default declared
   --> /Rust/project/target/debug/build/tiledb-rust-209d4e65a1149745/out/bindings.rs:162:25
    |
162 |         #[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
    |                         ^^^^^^^
    |
    = help: make a unit variant default by placing `#[default]` above it
    = note: this error originates in the derive macro `Default` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0658]: deriving `Default` on enums is experimental
   --> /Rust/project/target/debug/build/tiledb-rust-209d4e65a1149745/out/bindings.rs:194:25
    |
194 |         #[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
    |                         ^^^^^^^
    |
    = note: see issue #86985 <https://github.com/rust-lang/rust/issues/86985> for more information
    = note: this error originates in the derive macro `Default` (in Nightly builds, run with -Z macro-backtrace for more info)

error: no default declared
   --> /Rust/project/target/debug/build/tiledb-rust-209d4e65a1149745/out/bindings.rs:194:25
    |
194 |         #[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
    |                         ^^^^^^^
    |
    = help: make a unit variant default by placing `#[default]` above it
    = note: this error originates in the derive macro `Default` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0658]: deriving `Default` on enums is experimental
   --> /Rust/project/target/debug/build/tiledb-rust-209d4e65a1149745/out/bindings.rs:221:25
    |
221 |         #[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
    |                         ^^^^^^^
    |
    = note: see issue #86985 <https://github.com/rust-lang/rust/issues/86985> for more information
    = note: this error originates in the derive macro `Default` (in Nightly builds, run with -Z macro-backtrace for more info)

error: no default declared
   --> //Rust/project/target/debug/build/tiledb-rust-209d4e65a1149745/out/bindings.rs:221:25
    |
221 |         #[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
    |                         ^^^^^^^
    |
    = help: make a unit variant default by placing `#[default]` above it
    = note: this error originates in the derive macro `Default` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0658]: deriving `Default` on enums is experimental
   --> /Rust/project/target/debug/build/tiledb-rust-209d4e65a1149745/out/bindings.rs:270:25
    |
270 |         #[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
    |                         ^^^^^^^
    |
    = note: see issue #86985 <https://github.com/rust-lang/rust/issues/86985> for more information
    = note: this error originates in the derive macro `Default` (in Nightly builds, run with -Z macro-backtrace for more info)

error: no default declared
   --> /Rust/project/target/debug/build/tiledb-rust-209d4e65a1149745/out/bindings.rs:270:25
    |
270 |         #[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
    |                         ^^^^^^^
    |
    = help: make a unit variant default by placing `#[default]` above it
    = note: this error originates in the derive macro `Default` (in Nightly builds, run with -Z macro-backtrace for more info)


@bogdanstate
Copy link
Contributor

No worries, this seems to have worked. The error you're seeing no longer seems AWS SDK-related.

I am not at my machine right now, but this looks like an error where running cargo +nightly build might help. As in, experimental features only work on nightly.

I am not 100% certain this even needs to derive Default TBH, so you could alternatively experiment with just turning that trait off and seeing what happens.

@mamscience
Copy link
Author

Well, I tried the nightly, but a different errors pops up now..see below.

I am not 100% certain this even needs to derive Default TBH, so you could alternatively experiment with just turning that trait off and seeing what happens.

Could you elaborate on how to do that? I've also started to make a new binding for the latest stable version of TileDB, but unfortunately, bindgen doesn't wanna play: rust-lang/rust-bindgen#2188

error: no default declared
   --> /project/target/debug/build/tiledb-rust-48c2259a77600c80/out/bindings.rs:162:25
    |
162 |         #[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
    |                         ^^^^^^^
    |
    = help: make a unit variant default by placing `#[default]` above it
    = note: this error originates in the derive macro `Default` (in Nightly builds, run with -Z macro-backtrace for more info)

error: no default declared
   -->/project/target/debug/build/tiledb-rust-48c2259a77600c80/out/bindings.rs:202:25
    |
202 |         #[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
    |                         ^^^^^^^
    |
    = help: make a unit variant default by placing `#[default]` above it
    = note: this error originates in the derive macro `Default` (in Nightly builds, run with -Z macro-backtrace for more info)

error: no default declared
   --> /project/target/debug/build/tiledb-rust-48c2259a77600c80/out/bindings.rs:233:25
    |
233 |         #[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
    |                         ^^^^^^^
    |
    = help: make a unit variant default by placing `#[default]` above it
    = note: this error originates in the derive macro `Default` (in Nightly builds, run with -Z macro-backtrace for more info)

error: no default declared
   --> /project/target/debug/build/tiledb-rust-48c2259a77600c80/out/bindings.rs:282:25
    |
282 |         #[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
    |                         ^^^^^^^
    |
    = help: make a unit variant default by placing `#[default]` above it
    = note: this error originates in the derive macro `Default` (in Nightly builds, run with -Z macro-backtrace for more info)

error: could not compile `tiledb-rust` due to 4 previous errors```

@mamscience
Copy link
Author

small bump?

@DaveLanday
Copy link

I am also having trouble building. I get a bunch of Cmake warnings (about deprications) and I get an error about not being able to find the tiledb/tiledb header. First, I get a compilation error MD5 is deprecated from openssl (I have OpenSSL 3.1.3 installed) Additionally, the build fails and thread throws panic:

1 error generated.
  make[6]: *** [tiledb/CMakeFiles/TILEDB_CORE_OBJECTS.dir/sm/crypto/crypto_openssl.cc.o] Error 1
  make[5]: *** [tiledb/CMakeFiles/TILEDB_CORE_OBJECTS.dir/all] Error 2
  make[4]: *** [all] Error 2
  make[3]: *** [CMakeFiles/install-tiledb] Error 2
  make[2]: *** [CMakeFiles/install-tiledb.dir/all] Error 2
  make[1]: *** [CMakeFiles/install-tiledb.dir/rule] Error 2
  make: *** [install-tiledb] Error 2
  wrapper.hpp:2:10: fatal error: 'tiledb/tiledb' file not found
  wrapper.hpp:2:10: fatal error: 'tiledb/tiledb' file not found, err: true

I am assuming it is a versioning issue? Any pointers here?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

3 participants