[Bug] Windows build fails with Clang/MSVC due to missing #include <chrono>
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 3/5
- Thời gian dự kiến
- 1-2 ngày
- Mức phù hợp với người mới
- 58/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Đặc tả rõ ràng
- Mức độ hoạt động
- Đình trệ
- Công nghệ
- cmake, cpp
- Lĩnh vực
- build-system, compilers
Hướng nghiên cứu
Bắt đầu với bốn tệp được liệt kê trong 3rdparty/llama.cpp/common và examples, sau đó kiểm tra src/ggml-bitnet-mad.cpp quanh dòng 811. Tái hiện bản build CMake bằng clang-cl trên Windows và xác minh rằng các header chrono còn thiếu cùng lỗi const pointer đã được giải quyết mà không phát sinh thêm lỗi trình biên dịch nào khác.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Summary
Building on Windows with ClangCL fails due to missing #include header and const pointer type mismatch in bitnet-mad.cpp.
Steps to Reproduce
- Clone the repository on Windows 11
- Install Clang 19 via Visual Studio 2022 Build Tools + clang-cl
- Run CMake configuration and build
- Observe compilation errors
Expected Behavior
Code should compile on Windows with ClangCL without errors
Actual Behavior
Two compilation errors occur:
Error 1: Missing #include
The following files use std::chrono without explicitly including :
- 3rdparty/llama.cpp/common/common.cpp
- 3rdparty/llama.cpp/common/log.cpp
- 3rdparty/llama.cpp/examples/imatrix/imatrix.cpp
- 3rdparty/llama.cpp/examples/perplexity/perplexity.cpp
On Linux/GCC, is pulled in implicitly, but Clang on Windows is stricter.
Error 2: Const pointer mismatch (src/ggml-bitnet-mad.cpp line 811)
error: cannot initialize a variable of type 'int8_t *' with an rvalue of type 'const int8_t *'
Root Cause Analysis
The root cause is platform-specific header dependency and type constness:
- Header Issue: GCC on Linux transitively includes through other headers, but Clang/MSVC on Windows does not
- Type Issue: The code at line 811 declares
int8_t *but receives aconst int8_t *, which should beconst int8_t *
Proposed Solution
- Add
#include <chrono>to the four affected files - Change line 811 from
int8_t *toconst int8_t *
Environment
- OS: Windows 11
- Compiler: Clang 19 (via Visual Studio 2022 Build Tools + clang-cl)
- CMake: 3.x
- Ngôn ngữ chính
- C++
- Star
- 40.3k
- Fork
- 3.7k
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
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 khác của microsoft/BitNet
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 86/100
-
i2_s SIGSEGVs at n_ubatch >= 32: BLAS backend dequantises by a row stride 4x the real packed rowĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 86/100
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 92/100
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
Tất cả issue của microsoft/BitNet
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100
grumpycoders/pcsx-redux#2171 ·
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 70/100
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 88/100
bytedance/trae-agent#524 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Update OPENEXR_IMATH_TAGĐang mở
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 84/100
AcademySoftwareFoundation/openexr#2683 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 85/100
microsoft/onnxruntime#32881 ·
Maintainer thường phản hồi trong vòng 1 ngày