2016-11-18 4 views
0

I AESCrypt Bibliothek, um mit MingW zu kompilieren heruntergeladen https://github.com/paulej/AESCrypt/tree/master/WindowsFehler Kompilieren AEScrypt mit mingw-w64 in Fenstern

Ich erhalte diese Fehlermeldung:

C:\Users\MyPC\AppData\Local\Temp\cclSPvvW.o:aescrypt.c:(.text+0xa2): undefined re 
ference to `sha256_starts(sha256_context*)' 
C:\Users\MyPC\AppData\Local\Temp\cclSPvvW.o:aescrypt.c:(.text+0xc0): undefined re 
ference to `sha256_update(sha256_context*, unsigned char*, unsigned long)' 
C:\Users\MyPC\AppData\Local\Temp\cclSPvvW.o:aescrypt.c:(.text+0x815): undefined r 
eference to `aes_encrypt(aes_context*, unsigned char*, unsigned char*)' 
C:\Users\MyPC\AppData\Local\Temp\cclSPvvW.o:aescrypt.c:(.text+0x829): undefined r 
eference to `sha256_update(sha256_context*, unsigned char*, unsigned long)' 
C:/Program Files (x86)/mingw-w64/i686-6.1.0-posix-dwarf-rt_v5-rev1/mingw32/bin/. 
./lib/gcc/i686-w64-mingw32/6.1.0/../../../../i686-w64-mingw32/lib/../lib/libming 
w32.a(lib32_libmingw32_a-crt0_c.o):crt0_c.c:(.text.startup+0x39): undefined refe 
rence to `[email protected]' 
collect2.exe: error: ld returned 1 exit status 

ich auf Windows 7 x64 bin, ich bin mit MingW-w64 6.1.0.

+0

Zeigen Sie den Befehl –

+0

Verwenden Großbuchstaben für AES – SHR

Antwort

0

Diese Art von Fehler bedeutet, dass Sie vergessen haben, die Datei mit dem Code des fehlenden Symbols zu verknüpfen. Es ist normalerweise eine .o oder .lib/.a Datei.

In Ihrem Fall ist eines der Symbole: sha256_starts (sha256_context *), das ist wahrscheinlich in sha256.o. Überprüfen Sie den tatsächlichen Link-Befehl und stellen Sie sicher, dass er diese Datei oder die Bibliothek enthält, die ihn enthält.

A Make-Datei wie dies sollte den Trick machen:

COMP = gcc 
RM = rm -f 
OBJS = aes.o sha256.o stdafx.o AESCrypt.o AESCryptShellExt.o AESCryptWorkerThreads.o BufferedFile.o ErrorHandling.o PasswdDialog.o ProgressDialog.o 
LDFLAGS = -mwindows 
SERVERLDFLAGS = 
TARGET = aes.exe 

all : $(TARGET) 

$(TARGET) : $(OBJS) 
    $(COMP) $(LDFLAGS) $(DEBUGFLAGS) -o $(TARGET) $^ 

clean : 
    $(RM) *.o 

%.o : %.c %.h 
    $(COMP) $(CFLAGS) -c $< 

%.o : %.cpp %.h 
    $(COMP) $(CFLAGS) -c $< 
+0

I unter Windows und keine .o oder lib bin kompilieren/erforderlich, nehmen Sie bitte einen Blick auf Github-Repository, danke. –

+0

Der Verbindungsfehler bedeutet, dass er nicht gefunden werden kann – Tom

+0

Der Verbindungsfehler bedeutet, dass er den Binärcode für sha256_starts und sha256_update nicht finden kann. Wenn Sie sha256.c betrachten, finden Sie die Implementierung dieser Funktionen. Das bedeutet, dass Sie sha256.c kompilieren müssen, um sha256.o zu generieren, und wenn Sie Ihre Dateien miteinander verknüpfen, muss diese Datei in die andere .o eingebunden werden, um die ausführbare Datei zu erhalten. – Tom