File | Date | Author | Commit |
---|---|---|---|
README.md | 2021-08-28 |
![]() |
[bfce1a] Update README.md |
libzpaq.cpp | 2021-08-27 |
![]() |
[6c5e13] Add files via upload |
libzpaq.h | 2021-08-27 |
![]() |
[6c5e13] Add files via upload |
zsfx.cpp | 2021-08-28 |
![]() |
[d0b3d1] Add files via upload |
zsfx.exe (and zsfx32.exe) create self-extracting Windows executables from ZPAQ or zpaqfranz archives
Supports just about everything:
- journaling
- multithread
- command switches (-only, -to...)
- non-Latin charsets
- fast, really fast
- easy to use (no weird "voodoo" needed)
- the 32 bit version (zsfx32.exe) can extract limitless archives (just not as fast as the 64 bit)
The software is not very small (~300KB) and the resulting EXE must be less than 2GB in size (Windows limitation).
The archaic (2012) ZPAQ sfx module
Note: if you use something like UPX or whatever heuristic-fake virus detection is common. It is not my fault :)
The usage is trivial
Usage: zsfx x nameofzpaqfile (...zpaq extraction options) (-output mynewsfx.exe)
Ex: zsfx x z:\1.zpaq
Ex: zsfx x z:\1.zpaq -to .\xtracted\
Ex: zsfx x z:\1.zpaq -to y:\testme\ -output z:\mynewsfx.exe
Do NOT call the output file zsfx.exe or zsfx32.exe
Do NOT rename zsfx.exe and zsfx32.exe to something else
CREDITS
In this case only Windows is supported, be careful to link the pthread library.
Today it is splitted into 3 source code, not merged as zpaqfranz, because no "strange" platform here, just plain Win.
Targets
Quick-and-dirty
g++ zsfx.cpp libzpaq.cpp -o zsfx
Size optimizations
Windows 64 (g++ 7.3.0)
g++ -Os zsfx.cpp libzpaq.cpp -o zsfx -static -fno-rtti -Wl,--gc-sections
Windows 32 (g++ 7.3.0)
c:\mingw32\bin\g++ -m32 -Os zsfx.cpp libzpaq.cpp -o zsfx32 -pthread -static -fno-rtti -Wl,--gc-sections