====== Rješavanje Problema ====== Ovdje ćete pronaći rješenja za česte probleme prilikom kompilacije OpenSSL-a. ---- ===== Greške pri Kompilaciji ===== ==== "stdlib.h not found" ili "windows.h not found" ==== **Simptom:** fatal error C1083: Cannot open include file: 'stdlib.h': No such file or directory **Uzrok:** Windows SDK nije instaliran ili nije u PATH-u. **Rješenje:** # Opcija 1: Instalirajte Windows SDK winget install Microsoft.WindowsSDK.10.0.22621 # Opcija 2: U Visual Studio Installeru # → "Individual Components" → odaberite "Windows 10 SDK" Zatim: Ponovno učitajte Visual Studio okruženje: call "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvars64.bat" ---- ==== "perl is not recognized" ==== **Simptom:** 'perl' is not recognized as an internal or external command **Uzrok:** Perl nije instaliran ili nije u PATH-u. **Rješenje:** # Instalirajte Perl winget install StrawberryPerl.StrawberryPerl # Ručno postavite PATH (ako još uvijek nije pronađen nakon ponovnog pokretanja) set PATH=C:\Strawberry\perl\bin;%PATH% ---- ==== "NASM not found" ==== **Simptom:** NASM not found - please read INSTALL.md **Uzrok:** NASM nije instaliran ili nije u PATH-u. **Rješenje A: Instalirajte NASM (preporučeno)** winget install NASM.NASM # Postavite PATH (putanja može varirati!) set PATH=%LOCALAPPDATA%\bin\NASM;%PATH% # Provjerite nasm -v **Rješenje B: Kompilirajte bez NASM-a (sporije)** perl Configure VC-WIN64A no-asm --prefix=D:\Projects\openssl-3.6.0\bin Bez NASM-a, AES i SHA su značajno sporiji! ---- ==== "cl.exe not found" ==== **Simptom:** 'cl' is not recognized as an internal or external command **Uzrok:** Visual Studio okruženje nije učitano. **Rješenje:** call "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvars64.bat" **Savjet:** Uvijek pokrenite "Developer Command Prompt for VS 2022" iz Start izbornika - okruženje je već učitano. ---- ===== PowerShell Problemi ===== ==== "cl.exe uzrokuje grešku unatoč uspjehu" ==== **Simptom:** PowerShell skripta se prekida iako ''cl.exe'' radi. **Uzrok:** ''cl.exe'' piše informacije o verziji na stderr, što se interpretira kao greška s ''$ErrorActionPreference = "Stop"''. **Rješenje u skripti:** # Ispravno rukujte cl.exe izlazom try { $clOutput = & cl 2>&1 | Out-String Write-Host "cl.exe pronađen" } catch { Write-Host "cl.exe pronađen (stderr ignoriran)" } ---- ===== Problemi u Izvršavanju ===== ==== "DLL not found" pri pokretanju programa ==== **Simptom:** The program can't start because libcrypto-3-x64.dll is missing **Rješenje:** 1. Kopirajte DLL datoteke u mapu aplikacije: copy D:\Projects\openssl-3.6.0\bin\bin\libcrypto-3-x64.dll .\ copy D:\Projects\openssl-3.6.0\bin\bin\libssl-3-x64.dll .\ 2. Ili automatski kopirajte u .csproj: PreserveNewest PreserveNewest ---- ==== "ML-DSA/ML-KEM nije dostupan" ==== **Simptom:** openssl list -signature-algorithms | findstr mldsa # Nema izlaza **Mogući uzroci:** 1. **Pogrešna verzija OpenSSL-a** - Potrebna je 3.6.0 ili novija openssl version # Mora biti: OpenSSL 3.6.0 ili noviji 2. **Provider nije učitan** openssl list -providers # Trebao bi pokazati "default" i eventualno "oqsprovider" ---- ===== Daljnja Pomoć ===== Ako vaš problem nije ovdje naveden: * [[https://github.com/openssl/openssl/blob/master/NOTES-WINDOWS.md|OpenSSL Windows Notes]] * [[https://github.com/openssl/openssl/issues|OpenSSL GitHub Issues]] * [[https://stackoverflow.com/questions/tagged/openssl|StackOverflow OpenSSL]] ---- //Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional//