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:

<ItemGroup>
  <None Update="libcrypto-3-x64.dll">
    <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
  </None>
  <None Update="libssl-3-x64.dll">
    <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
  </None>
</ItemGroup>

"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:


Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional

Zuletzt geändert: 29.01.2026. u 21:25