Tôi đang biên soạn một thư viện được chia sẻ với hai đơn vị biên dịch: globals.cpp
và stuff.cpp
. Tệp globals.cpp
khởi tạo một số biến ngoại lệ được sử dụng trong stuff.cpp
. Vấn đề tôi gặp phải là mã trong stuff.cpp
đang chạy trước khi mã trong globals.cpp
đã có cơ hội gán giá trị cho các biến bên ngoài. Ví dụ: tôi thấy một loạt các giá trị 0
đang được sử dụng. Vấn đề này phụ thuộc vào nền tảng tôi biên dịch/chạy mã trên - một số công việc và một số thì không.Tại sao biến ngoài của tôi chưa được khởi tạo?
Làm cách nào để giải quyết vấn đề này? Tôi có thể buộc globals.cpp
đến chạy trước tiên không?
Bạn đang gặp [fiasco thứ tự khởi tạo tĩnh] [1]. [1]: http://stackoverflow.com/questions/3035422/static-initialization-order-fiasco – kfmfe04
Xin cảm ơn, ít nhất hãy giải quyết vấn đề. – sholsapp