Símbolos indefinidos para la arquitectura i386:

Recientemente me mudé a una Mac, y estoy teniendo problemas para usar los compiladores de línea de comandos. Estoy usando g ++ para compilar, y esto construye un solo archivo fuente bien. si trato de agregar un archivo de encabezado personalizado, cuando intento compilar usando g ++ obtengo símbolos indefinidos para la arquitectura i386. Sin embargo, los programas compilan bien en xCode. ¿Me estoy perdiendo algo obvio?

tratado con g ++ -m32 main.cpp ... no sabía qué más probar.

e acuerdo, el código antiguo compilado ... Lo he reducido a mis constructores.

class Matrix{
public:
    int a;
    int deter;

    Matrix();
    int det();
};

#include "matrix.h"


Matrix::Matrix(){
    a = 0;
    deter = 0;
}

int Matrix::det(){
    return 0;

}

mi error es Símbolos indefinidos para arquitectura x86_64: "Matrix :: Matrix ()", referenciado desde: _main en ccBWK2wB.o ld: símbolo (s) no encontrado (s) para arquitectura x86_64 collect2: ld devolvió 1 estado de salida

mi código principal tiene

#include "matrix.h"
int main(){
    Matrix m;

    return 0;
} 

junto con el @ habitu

Respuestas a la pregunta(3)

Su respuesta a la pregunta