[Bug] Windows build fails with Clang/MSVC due to missing #include <chrono>
Nessuno ha ancora preso questa issue.
- Lingua principale
- C++
- Stelle
- 40.3k
- Fork
- 3.7k
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Descrizione
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
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Inizia con i quattro file elencati in 3rdparty/llama.cpp/common e examples, quindi esamina src/ggml-bitnet-mad.cpp intorno alla riga 811. Riproduci la build CMake con clang-cl su Windows e verifica che gli header chrono mancanti e l'errore di const pointer siano stati risolti senza introdurre altri errori del compilatore.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- cmake, cpp
- Ambito
- build-system, compilers
- Tipo di issue
- Bug
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Stato di attività
- Ferma
- Chiarezza
- Specificata chiaramente
- Idoneità per principianti
- 58/100