/ / krížová kompilácia pomocou súborov mingw32 a gmp - c ++, krížová kompilácia, gmp, mingw32

krížová kompilácia pomocou mingw32 a gmp-c ++, cross-compiling, gmp, mingw32

Momentálne sa pokúšam skompilovať kód C ++, ktorý som napísal a ktorý v Linuxe fungoval úplne v poriadku.

Nainštaloval som si mingw32 a pomocou niečoho podobného som skompiloval libgmp ako knižnicu Windows (.a):

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

Dúfam, že som to urobil dobre

Pridal som dva adresáre do svojich projektov incs a libs. V incs vložím hlavičku .h (gmpxx.h) a v libs vložím libgmpxx.a a libgmp.a

Pokúsil som sa zostaviť pomocou tohto súboru 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)

Odstránil som varovnú časť, pretože tu nie je užitočná.

Keď spustím make, hovorí mi, že sa nenašiel žiadny súbor gmpxx.h ....

Má niekto riešenie? Vyskúšali ste si to poriadne ...

odpovede:

0 pre odpoveď č. 1

Vaša smernica o kompilácii by mala smerovať do hlavičkového adresára „incs“, čo nie je:

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

Vytvorte premennú takto:

CCFLAGS=-Iincs/

a upravte svoju smernicu kompilácie:

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

Ďalej by vaša premenná LDFLAGS mala vyzerať takto:

LDFLAGS=-Llibs/ -l...

Kde ... označuje názov zdieľanej knižnice, s ktorou sa prepájate v knižnici libs /. Ak máte iba statickú knižnicu (.a), pridajte ju do svojej smernice o prepojení.