Importando funciones en línea en MinGW

Estoy usando una biblioteca compartida que define funciones en línea en su encabezado.

Aquí hay un caso de prueba reducido, como se ve en la unidad de compilación que se vincula con la biblioteca (para la versión que se ve en la biblioteca, simplemente reemplacedllimport pordllexport).

class __declspec(dllimport) MyClass {
public:
    int myFunc2();
    int myFunc1();
};

inline int MyClass::myFunc2(void) {
    return myFunc1();
}

inline int MyClass::myFunc1(void) {
    return 0;
}

Compilar esto da la advertencia:

advertencia: 'int MyClass :: myFunc1 ()' se volvió a declarar sin el atributo dllimport después de ser referenciado con el enlace dll [habilitado de forma predeterminada]

Tenga en cuenta que el orden en que se definen las funciones es importante, ya que poner la definición demyFunc1 antes de la definición demyFunc2 resultados en ninguna advertencia.

Tenga en cuenta también que este código se compila sin advertencias en Visual C ++. Estas advertencias son específicas al menos para MinGW, tal vez para GCC en general. Edición: pensé que podría tener que verificar si la advertencia no está inhibida por una de las banderas establecidas por el proyecto.

Mis preguntas son entonces:

¿Por qué este comportamiento?DeclarandomyFunc1 comoinline Dentro de la declaración de clase se soluciona el problema. Porqué es eso ? También está en contra deforma recomendada de hacer cosas.¿Hay otra (mejor?) Manera de solucionar este problema?

Respuestas a la pregunta(2)

Su respuesta a la pregunta