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

'limits' file not found #419

Closed
vadtam opened this issue Jan 31, 2023 · 8 comments
Closed

'limits' file not found #419

vadtam opened this issue Jan 31, 2023 · 8 comments

Comments

@vadtam
Copy link

vadtam commented Jan 31, 2023

Hello, I also can not compile the Rust crate opencv = "0.76.3"

  1. OS Ubuntu 22.04 LTS
  2. I installed opencv using $ sudo apt install libopencv-dev clang libclang-dev
    Also, I checked that opencv works using $ python3
     import cv2
     cv2.__version__
Outputs: '4.7.0'
  1. rustc v1.67.0

  2. When I compile, I get this

=== /usr/include/opencv4/opencv2/core/cvdef.h:185:10: fatal error: 'limits' file not found
thread 'main' panicked at '=== Errors during header parsing', /home/myuser/.cargo/registry/src/github.com-1ecc6299db9ec823/opencv-binding-generator-0.55.0/src/generator.rs:512:17
stack backtrace:
0: 0x564ad6630c0a - std::backtrace_rs::backtrace::libunwind::trace::h34aec3ef6cd8ad7e
at /rustc/fc594f15669680fa70d255faec3ca3fb507c3405/library/std/src/../../backtrace/src/backtrace/libunwind.rs:93:5
1: 0x564ad6630c0a - std::backtrace_rs::backtrace::trace_unsynchronized::h8035d38698d0f7a8
at /rustc/fc594f15669680fa70d255faec3ca3fb507c3405/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
2: 0x564ad6630c0a - std::sys_common::backtrace::_print_fmt::hff968f6695a1ba22
at /rustc/fc594f15669680fa70d255faec3ca3fb507c3405/library/std/src/sys_common/backtrace.rs:65:5
3: 0x564ad6630c0a - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h7eea0efe77acf1ec
at /rustc/fc594f15669680fa70d255faec3ca3fb507c3405/library/std/src/sys_common/backtrace.rs:44:22
4: 0x564ad6653fce - core::fmt::write::hc553f17407eb0b48
at /rustc/fc594f15669680fa70d255faec3ca3fb507c3405/library/core/src/fmt/mod.rs:1208:17
5: 0x564ad662dad5 - std::io::Write::write_fmt::h62e5f01a089f48c0
at /rustc/fc594f15669680fa70d255faec3ca3fb507c3405/library/std/src/io/mod.rs:1682:15
6: 0x564ad66309d5 - std::sys_common::backtrace::_print::h52d116aff3db4cd1
at /rustc/fc594f15669680fa70d255faec3ca3fb507c3405/library/std/src/sys_common/backtrace.rs:47:5
7: 0x564ad66309d5 - std::sys_common::backtrace::print::h9e7d2f98fb7af075
at /rustc/fc594f15669680fa70d255faec3ca3fb507c3405/library/std/src/sys_common/backtrace.rs:34:9
8: 0x564ad663205f - std::panicking::default_hook::{{closure}}::hf74999dab2d0a95c
at /rustc/fc594f15669680fa70d255faec3ca3fb507c3405/library/std/src/panicking.rs:267:22
9: 0x564ad6631d9b - std::panicking::default_hook::hc11ca7d10c44c42f
at /rustc/fc594f15669680fa70d255faec3ca3fb507c3405/library/std/src/panicking.rs:286:9
10: 0x564ad663276c - std::panicking::rust_panic_with_hook::hdb4da1ae79c845a5
at /rustc/fc594f15669680fa70d255faec3ca3fb507c3405/library/std/src/panicking.rs:688:13
11: 0x564ad66324c2 - std::panicking::begin_panic_handler::{{closure}}::h02b5b35b126d5cf2
at /rustc/fc594f15669680fa70d255faec3ca3fb507c3405/library/std/src/panicking.rs:577:13
12: 0x564ad66310bc - std::sys_common::backtrace::__rust_end_short_backtrace::h6c6853376cf416d1
at /rustc/fc594f15669680fa70d255faec3ca3fb507c3405/library/std/src/sys_common/backtrace.rs:137:18
13: 0x564ad6632212 - rust_begin_unwind
at /rustc/fc594f15669680fa70d255faec3ca3fb507c3405/library/std/src/panicking.rs:575:5
14: 0x564ad649e603 - core::panicking::panic_fmt::hfd9e949092070b66
at /rustc/fc594f15669680fa70d255faec3ca3fb507c3405/library/core/src/panicking.rs:64:14
15: 0x564ad64e1b8a - opencv_binding_generator::generator::Generator::handle_diags::h4494e53de6b85989
16: 0x564ad64a5ce2 - opencv_binding_generator::generator::Generator::process_opencv_module::h2ed6f6e32793d3dc
17: 0x564ad64a9fca - binding_generator::main::h61103a86d77429b6
18: 0x564ad64ab3d3 - std::sys_common::backtrace::__rust_begin_short_backtrace::hebec183eaf01f78e
19: 0x564ad64a0c69 - std::rt::lang_start::{{closure}}::hf507f37f302d6e4f
20: 0x564ad662a84c - core::ops::function::impls::<impl core::ops::function::FnOnce for &F>::call_once::h9ab31282e87f134a
at /rustc/fc594f15669680fa70d255faec3ca3fb507c3405/library/core/src/ops/function.rs:606:13
21: 0x564ad662a84c - std::panicking::try::do_call::h42ddf5b01d0b4bc7
at /rustc/fc594f15669680fa70d255faec3ca3fb507c3405/library/std/src/panicking.rs:483:40
22: 0x564ad662a84c - std::panicking::try::hfb70320d7386c61a
at /rustc/fc594f15669680fa70d255faec3ca3fb507c3405/library/std/src/panicking.rs:447:19
23: 0x564ad662a84c - std::panic::catch_unwind::h978c9edbad2bb4d4
at /rustc/fc594f15669680fa70d255faec3ca3fb507c3405/library/std/src/panic.rs:137:14
24: 0x564ad662a84c - std::rt::lang_start_internal::{{closure}}::h04ede5bd2f26b553
at /rustc/fc594f15669680fa70d255faec3ca3fb507c3405/library/std/src/rt.rs:148:48
25: 0x564ad662a84c - std::panicking::try::do_call::ha6b9da35a0885c93
at /rustc/fc594f15669680fa70d255faec3ca3fb507c3405/library/std/src/panicking.rs:483:40
26: 0x564ad662a84c - std::panicking::try::h3325520cab3a642e
at /rustc/fc594f15669680fa70d255faec3ca3fb507c3405/library/std/src/panicking.rs:447:19
27: 0x564ad662a84c - std::panic::catch_unwind::h160beec6f047175b
at /rustc/fc594f15669680fa70d255faec3ca3fb507c3405/library/std/src/panic.rs:137:14
28: 0x564ad662a84c - std::rt::lang_start_internal::h79190e3a877a769d
at /rustc/fc594f15669680fa70d255faec3ca3fb507c3405/library/std/src/rt.rs:148:20
29: 0x564ad64aa7b5 - main
30: 0x7fe1e5312d90 -
31: 0x7fe1e5312e40 - __libc_start_main
32: 0x564ad649ec75 - _start
33: 0x0 -

@twistedfall
Copy link
Owner

Can you please attach the full build log as produced by cargo build -vv?

@vadtam
Copy link
Author

vadtam commented Feb 1, 2023

Please find attached the output of $ RUST_BACKTRACE=full cargo build -vv
log.txt

@twistedfall
Copy link
Owner

Can you please show me the output of the find / -name limits.h on your machine? My fresh Ubuntu 22.04 container shows:

/usr/lib/gcc/x86_64-linux-gnu/11/include/limits.h
/usr/lib/llvm-14/lib/clang/14.0.0/include/limits.h
/usr/include/c++/11/tr1/limits.h
/usr/include/limits.h
/usr/include/linux/limits.h

Also I see the difference in clang arguments between your log and my container:
your log

"-isystem/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++",

container:

"-isystem/usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11",
"-isystem/usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/x86_64-linux-gnu/c++/11",
"-isystem/usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/backward",

Do you maybe know why this difference?

@vadtam
Copy link
Author

vadtam commented Feb 1, 2023

$ sudo find / -name limits.h
/usr/src/linux-headers-5.4.0-137/include/linux/limits.h
/usr/src/linux-headers-5.4.0-137/include/uapi/linux/limits.h
/usr/src/linux-oem-headers-4.15.0-1027/arch/arm/include/asm/limits.h
/usr/src/linux-oem-headers-4.15.0-1027/include/uapi/linux/limits.h
/usr/src/linux-headers-5.15.0-58/include/vdso/limits.h
/usr/src/linux-headers-5.15.0-58/include/linux/limits.h
/usr/src/linux-headers-5.15.0-58/include/uapi/linux/limits.h
/usr/share/virtualbox/src/vboxhost/vboxnetadp/include/iprt/nocrt/limits.h
/usr/share/virtualbox/src/vboxhost/vboxnetflt/include/iprt/nocrt/limits.h
/usr/share/virtualbox/src/vboxhost/vboxdrv/include/iprt/nocrt/limits.h
/usr/lib/gcc/x86_64-linux-gnu/7/include/limits.h
/usr/lib/gcc/x86_64-linux-gnu/11/include/limits.h
/usr/lib/gcc/x86_64-linux-gnu/12/include/limits.h
/usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h
/usr/lib/llvm-14/lib/clang/14.0.0/include/limits.h
/usr/include/linux/limits.h
/usr/include/c++/11/tr1/limits.h
/usr/include/limits.h
find: ‘/run/user/1001/doc’: Permission denied
find: ‘/run/user/1001/gvfs’: Permission denied

There are a lot of "limits" files here. I do not know why the compiler doesn't find the correct one. Just a guess that maybe some path is wrong.

@twistedfall
Copy link
Owner

Can you please also show the result of the following command find / -type f -name limits?

@vadtam
Copy link
Author

vadtam commented Feb 1, 2023

$ sudo find / -type f -name limits | grep -v "proc"
/usr/include/c++/11/limits

@twistedfall
Copy link
Owner

Can you please try installing libstdc++-12-dev (apt install libstdc++-12-dev) package and trying the build again?

@vadtam
Copy link
Author

vadtam commented Feb 2, 2023

Thank you, man. I have installed this libstdc++-12-dev package, and everything compiles now.

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

No branches or pull requests

2 participants