aws / aws/aws-sdk-cpp

Building with CUSTOM_MEMORY_MANAGEMENT causes entry point issues in DLL

Aperta
#2,122 5 commenti 0 reazioni 0 assegnatari Vedi su GitHub
feature-request p2
Lingua principale
C++
Stelle
2.2k
Fork
1.2k
Merge medio
4g 11h
PR unite (30g)
13

Descrizione

### Describe the bug

Building the SDK with the CUSTOM_MEMORY_MANAGEMENT set causes issues with the dll with both the S3 and S3-CRT packages.

### Expected Behavior

Package should build and the dlls be loadable by the required software.

### Current Behavior

When adding the DLL to my UE4 project, I will get the following error message pop-up:

>The procedure entry point could not be located in the dynamic link library C\[...]\aws-cpp-sdk-s3-crt-.dll.

### Reproduction Steps

Build the sdk with the following CMAKE command:

```
cmake.exe "../aws-sdk-cpp" -DCMAKE_BUILD_TYPE=Release -DBUILD_ONLY="s3-crt" -DCUSTOM_MEMORY_MANAGEMENT=1 -DCPP_STANDARD=17 -DENABLE_TESTING=0
```

Then try to load the DLL in another application and the error message should appear.

Note: testing is disabled because adding the custom memory flag will fail the unit tests.

### Possible Solution

_No response_

### Additional Information/Context

As noted before, this is being added as a plug-in library in UE4. There is a necessity to provide a custom Memory Manager in this scenario as not using a custom one will cause issues when allocating/deallocating strings.

I haven't tested loading the DLL in a separate project, but it will load correctly if I compile without the DCUSTOM_MEMORY_MANAGEMENT flag.

### AWS CPP SDK version used

1.9.355

### Compiler and Version used

Visual Studio

### Operating System and version

Windows 10

Guida per i contributori

Apri la guida per i contributori

Direzione di ricerca

Riprodurre la build di Windows 10 con CMake usando BUILD_ONLY="s3-crt", CUSTOM_MEMORY_MANAGEMENT=1 e i test disabilitati, quindi confrontarla con una build senza il flag per la gestione personalizzata della memoria. Esaminare i punti di ingresso delle DLL S3 e S3-CRT e la configurazione della build; il lavoro è completato quando le DLL vengono caricate correttamente nell’applicazione UE4 senza l’errore relativo al punto di ingresso della procedura mancante.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
cmake, cpp
Ambito
backend-api-design, build-system
Tipo di issue
Bug
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
35/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.