Build failure on GCC/MinGW (MXE): std::ifstream constructor mismatch with Platform::filenameToUTF()
I maintainer di solito rispondono entro 4 giorni
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 78/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Tranquilla
- Stack tecnologico
- cpp
- Ambito
- build-system
Direzione di ricerca
Iniziare da src/OpenColorIO/transforms/FileTransform.cpp ed esaminare la costruzione di std::ifstream tramite Platform::filenameToUTF(filepath). Compilare OpenColorIO con GCC/MinGW-w64 o MXE per riprodurre il problema dell’overload std::wstring, quindi verificare che la gestione dei percorsi venga compilata e funzioni nelle configurazioni interessate.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Description
OpenColorIO 2.5.1 fails to compile under GCC / MinGW-w64 (including MXE cross builds) due to inconsistent file path type handling in Platform::filenameToUTF() when used with std::ifstream in FileTransform.cpp.
The failure occurs when constructing a std::ifstream from the result of Platform::filenameToUTF(filepath), where the returned type may vary between std::string and std::wstring depending on build configuration (_WIN32 && UNICODE).
This leads to template overload resolution failures under GCC/libstdc++ when a std::wstring is involved in std::ifstream construction.
Error observed (GCC / libstdc++)
error: no matching function for call to
std::basic_ifstream<char>::basic_ifstream(const std::wstring, std::ios_base::openmode)
Affected code src/OpenColorIO/transforms/FileTransform.cpp:
std::ifstream(Platform::filenameToUTF(filepath), mode)
Root cause
Platform::filenameToUTF()is conditionally typed:std::wstringon _WIN32 && UNICODEstd::stringotherwisestd::ifstreamconstruction fromstd::wstringis not consistently supported across standard library implementations- GCC/libstdc++ rejects this usage, while MSVC may accept it depending on STL implementation details
- This creates a portability issue in file I/O path handling
Impact
- Breaks MXE / MinGW-w64 cross compilation
- Causes divergence between MSVC and GCC builds
- Introduces non-portable file path handling in core I/O utilities
Suggested fix
Avoid passing platform-dependent string types directly into std::ifstream construction.
This is the C++17-compatible solution that worked:
auto path = Platform::filenameToUTF(filepath);
return std::make_unique<std::ifstream>(path.c_str(), mode);
- Lingua principale
- C++
- Stelle
- 2.1k
- Fork
- 503
- Merge medio
- 8g 3h
- PR unite (30g)
- 10
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
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.
Altre issue di AcademySoftwareFoundation/OpenColorIO
-
Inconsistent run-time library usage for locale handling breaks GPU code generation on some systems.Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 86/100
AcademySoftwareFoundation/OpenColorIO#2351 · 2 commenti ·
I maintainer di solito rispondono entro 4 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
AcademySoftwareFoundation/OpenColorIO#2340 ·
I maintainer di solito rispondono entro 4 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
AcademySoftwareFoundation/OpenColorIO#2329 ·
I maintainer di solito rispondono entro 4 giorni
-
ReadTheDocs - OS DeprecationApertaDocumentation
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 72/100
AcademySoftwareFoundation/OpenColorIO#2280 · 1 commento ·
I maintainer di solito rispondono entro 4 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
AcademySoftwareFoundation/OpenColorIO#2277 ·
I maintainer di solito rispondono entro 4 giorni
Tutte le issue di AcademySoftwareFoundation/OpenColorIO
Issue simili
-
needs-triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
flashinfer-ai/flashinfer#6212 ·
I maintainer di solito rispondono entro 1 giorno
-
bug graphics
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
FlaxEngine/FlaxEngine#4295 · 2 commenti ·
I maintainer di solito rispondono entro 2 giorni
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
Algorithmiq/monoprop#390 ·
I maintainer di solito rispondono entro 1 giorno
-
docs
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
I maintainer di solito rispondono entro 1 giorno
-
8-membered-ring atrop stereo lost in 2026.09.1Forse già presa Una pull request collegata a questa issue è aperta o già unita. Apertabug
Difficoltà 2/5 Mezza giornata Idoneità per principianti 86/100
I maintainer di solito rispondono entro 2 giorni