Meu cenário é o seguinte (funcionou no clang, mas não no gcc)
liba.hpp:
inline int MY_GLOBAL = 0;
libother.cpp: (dll)
#include "myliba.hpp"
void myFunc() {
//
MYGLOBAL = 28;
}
someexe.cpp:
RunAppThatUsesBothLibAandLibOther();
O problema é que a variável inline estava mostrando 0 em locais onde eu esperava 28, porque ela já foi modificada em tempo de execução. A MSVC discorda disso, mas clang faz o que eu esperaria.
A questão é: as variáveis embutidas podem ser modificadas em tempo de execução no meu cenário? (Eu resolvi o problema desinlinando a variável.)
inline
variáveis. Você também precisa garantir que eles foram exportados de uma DLL e importados de lá em todos os outros lugares.