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ď č. 1Vaš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í.