Building with CUSTOM_MEMORY_MANAGEMENT causes entry point issues in DLL
- 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