canard.c 5.0.0: static random() conflicts with newlib's random() (fails to build on ESP-IDF)
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 2/5
- Thời gian dự kiến
- 1-3 giờ
- Mức phù hợp với người mới
- 86/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Đặc tả rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- c
- Lĩnh vực
- embedded-iot
Hướng nghiên cứu
Mở canard.c và kiểm tra định nghĩa random() cùng ba vị trí gọi hàm này, bao gồm lời gọi trong chance(). Tái hiện lỗi build trong một dự án ESP-IDF có libcanard 5.0.0 bằng lệnh idf.py build đã nêu. Hoàn tất khi component build thành công mà không có khai báo random() gây xung đột.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
canard.c in v5.0.0 defines static uint64_t random(canard_t* const self, const uint64_t bound)
(line 130). On ESP-IDF this fails to compile because newlib's <stdlib.h> declares
long random(void);, and it is pulled in indirectly by the headers canard.c includes.
v4.0.0 has no function with this name. This breaks the ESP registry package
opencyphal/libcanard 5.0.0.
Error (ESP-IDF v5.3.1, gcc 13.2.0, -std=gnu17 -D_GNU_SOURCE):
canard.c:130:17: error: conflicting types for 'random'; have 'uint64_t(canard_t * const, const uint64_t)'
Reproduce: in an ESP-IDF project add opencyphal/libcanard: "^5.0.0" to
main/idf_component.yml and run idf.py build.
Suggested fix: rename the helper, e.g. to canard_random. It appears 4 times in
canard.c: lines 130 (definition), 136 (chance()), 1933 and 1988. A new release would be
needed for the ESP registry package to pick it up.
- Ngôn ngữ chính
- C
- Star
- 450
- Fork
- 220
- Merge trung bình
- 2 ngày 9 giờ
- Pull request đã merge (30 ngày)
- 2
Chuẩn bị môi trường
Dự án này không cung cấp dev container, Dockerfile hay hướng dẫn đóng góp, nên bạn cần tự thiết lập môi trường: hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
polhenarejos/pico-fido#302 ·
-
开发板墙缺少 ESP32_S31_MOSAICOĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 67/100
espressif/esp-vision#16 · 1 bình luận ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 74/100
libsdl-org/SDL#16577 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 66/100
Maintainer thường phản hồi trong vòng 1 ngày
-
halt_error adds a trailing newline for non-string input, contrary to the manualCó thể đã có người làm @Huang-404-Q đã nhận hôm nay. Đang mở
Độ khó 1/5 1-3 giờ Mức phù hợp với người mới 88/100
Maintainer thường phản hồi trong vòng 2 ngày