In your current example, there is no difference: when declaring variables, constexprit implies const, and the variable const in the namespace has an internal default binding (so adding staticdoes not change anything).
++ 14 constexpr , . , constexpr , - , .
, ( ) extern, , , :
lib.h:
extern const int a;
lib.cpp:
#include "lib.h"
const int a = 10;
int b[a] = {1, 2, 3};
++ 17 " ", :
inline constexpr int a = 10;
" ", , ( "" ).