我的情况如下(它在clang中起作用,但在gcc中不起作用)
liba.hpp:
inline int MY_GLOBAL = 0;
libother.cpp:(dll)
#include "myliba.hpp"
void myFunc() {
//
MYGLOBAL = 28;
}
someexe.cpp:
RunAppThatUsesBothLibAandLibOther();
问题在于,内联变量在我希望28的地方显示0,因为它在运行时被修改了。MSVC对此表示不同意,但是clang做了我期望的事情。
问题是:在我的方案中,可以在运行时修改内联变量吗?(我通过取消内联变量解决了问题。)