Судя по листингам .s A::A() нигде нет, но хочется уточнить причину.
Компилятор не создает A::A() внутри a.cpp потому что там нет явного определения объекта типа A или указания = default. А почему компилятор не создаёт A::A() внутри main.cpp?
A.h :
#pragma once
class A{
public:
virtual void function1 ();
virtual ~A ();
};
-fno-elide-constructors g++ (x86_64-win32-seh-rev0, Built by MinGW-W64 project) 8.1.0
A.cpp :
#include "A.h"
virtual void A::function1 (){ }
virtual A::~A(){ }
main.cpp :
#include "A.h"
int main(){
A a;
a.function1();
}