Mój scenariusz jest następujący (działał w clang, ale nie w gcc)
liba.hpp:
inline int MY_GLOBAL = 0;
libother.cpp: (dll)
#include "myliba.hpp"
void myFunc() {
//
MYGLOBAL = 28;
}
someexe.cpp:
RunAppThatUsesBothLibAandLibOther();
Problem polega na tym, że zmienna wbudowana pokazywała 0 w miejscach, w których spodziewałem się 28, ponieważ była ona zawsze modyfikowana w czasie wykonywania. MSVC nie zgadza się z tym, ale brzęk robi to, czego bym się spodziewał.
Pytanie brzmi: czy w moim scenariuszu można modyfikować zmienne wbudowane w czasie wykonywania? (Rozwiązałem problem, usuwając z niego zmienną).
inline
zmiennych. Musisz także upewnić się, że zostały wyeksportowane z jednej biblioteki DLL i stamtąd zaimportowane ze wszystkich innych miejsc.