/ / compilación cruzada utilizando mingw32 y gmp - c ++, compilación cruzada, gmp, mingw32

compilación cruzada utilizando mingw32 y gmp - c ++, compilación cruzada, gmp, mingw32

Actualmente estoy tratando de compilar de forma cruzada un código c ++ que escribí, que funcionó perfectamente bien en Linux.

Instalé mingw32 y compilé libgmp como una biblioteca de Windows (.a) usando algo como eso:

./configure --prefix=/usr/i586-mingw32msvc/ --host=i586-mingw32msvc

Espero haberlo hecho bien

Agregué dos directorios a mis proyectos incs y libs. En incs pongo el encabezado .h (gmpxx.h) y en libs pongo libgmpxx.a y libgmp.a

Intenté compilar usando este makefile:

CPP=i586-mingw32msvc-g++
CPPSPECS=
LDFLAGS=-I incs/ libs/
EXEC=ceyd++.exe


all: $(EXEC)

$(EXEC): base64.o polynome.o chiffre.o dechiffre.o ceyd.o
$(CPP) -o $@ $^ $(LDFLAGS)

%.o: %.cpp
$(CPP) -o $@ -c $< $(CPPWARNINGS) $(CPPSPECS)

clean:
rm -rf *.o

mrproper: clean
rm -rf $(EXEC)

Quité la parte de advertencia ya que no es útil aquí.

Cuando ejecuto make, me dice que no se ha encontrado gmpxx.h ....

¿Alguien tiene una solución? Intentado duro en este ...

Respuestas

0 para la respuesta № 1

Su directiva de compilación debe apuntar al directorio de encabezado "incs" que no es:

$(CPP) -o $@ -c $< $(CPPWARNINGS) $(CPPSPECS)

Crea una variable de la siguiente manera:

CCFLAGS=-Iincs/

y modifique su directiva de compilación:

$(CPP) -o $@ -c $< $(CPPWARNINGS) $(CPPSPECS) $(CCFLAGS)

Además, su variable LDFLAGS debería verse así:

LDFLAGS=-Llibs/ -l...

Donde ... indica el nombre de la biblioteca compartida con la que está enlazando en libs /. Si solo tiene una biblioteca estática (.a) agregue esto a su directiva de vinculación.