Portable C, C++, and Fortran Development Kit for x64 and x86 Windows
w64devkit is a Dockerfile that builds from source a small, portable
development suite for creating C and C++ applications on and for x86 and
x64 Windows. See «Releases» for pre-built, ready-to-use kits.
Included tools:
- Mingw-w64 GCC : compilers, linker, assembler
- GDB : debugger
- GNU Make : standard build tool
- busybox-w32 : standard unix utilities, including sh
- Vim : powerful text editor
- Universal Ctags : source navigation
It is an MSVCRT toolchain with pthreads, C++11 threads, and OpenMP. All
included runtime components are static. Docker/Podman is not required to
use the development kit. It’s merely a reliable, clean environment for
building the kit itself.
Build
Build the image, then run it to produce a self-extracting 7z archive:
docker build -t w64devkit .
docker run --rm w64devkit >w64devkit-x64.exe
This takes about 15 minutes on modern systems. You will need an internet
connection during the first few minutes of the build. Note: Do not use
PowerShell because it lacks file redirection.
Usage
The self-extracting 7z archive contains tools in a typical unix-like
configuration. Extract wherever is convenient. Inside is w64devkit.exe
,
which launches a console window with the environment configured and ready
to go. It is the easiest way to enter the development environment, and
requires no system changes. It also sets two extra environment variables:
W64DEVKIT_HOME
to the installation root and W64DEVKIT
to the version.
Alternatively, add the bin/
directory to your path. For example, inside
a cmd.exe
console or batch script:
set PATH=c:\path\to\w64devkit\bin;%PATH%
Then to start an interactive unix shell:
Main features
-
No installation required. Run it anywhere as any user. Simply delete
when no longer needed. -
Fully offline. No internet access is ever required or attempted.
-
A focus on static linking all runtime components. The runtime is
optimized for size. -
Trivial to build from source, meaning it’s easy to tweak and adjust any
part of the kit for your own requirements. -
Complements Go for cgo and bootstrapping.
Operating system support
The x64 kit requires Windows 7 or later, though some tools only support
Unicode («wide») paths, inputs, and outputs on Windows 10 or later. The
toolchain targets Windows 7 by default.
The x86 kit requires Windows XP or later and an SSE2-capable processor
(e.g. at least Pentium 4); limited Unicode support. The toolchain targets
the same by default. Runtimes contain SSE2 instructions, so GCC -march
will not reliably target less capable processors when runtimes are linked
(exceptions: -lmemory
, -lchkstk
).
Optimized for size
Runtime components are optimized for size, leading to smaller application
executables. Unique to w64devkit, libmemory.a
is a library of memset
,
memcpy
, memmove
, memcmp
, and strlen
implemented as x86 string
instructions. When not linking a CRT, linking -lmemory
provides
tiny definitions, particularly when GCC requires them.
Also unique to w64devkit, libchkstk.a
has a leaner, faster definition of
___chkstk_ms
than GCC (-lgcc
), as well as __chkstk
, sometimes needed
when linking MSVC artifacts. Both are in the public domain and so, unlike
default implementations, do not involve complex licensing. When required
in a -nostdlib
build, link -lchkstk
.
Unlike traditional toolchains, import tables are not populated with junk
ordinal hints. If an explicit hint is not provided (i.e. via a DEF file),
then the hint is zeroed: «no data.» Eliminating this random data makes
binaries more compressible and theoretically faster loading. See also:
peports
.
Recommended downloadable, offline documentation
With a few exceptions, such as Vim’s built-in documentation (:help
),
w64devkit does not include documentation. However, you need not forgo
offline documentation alongside your offline development tools. This is a
list of recommended, no-cost, downloadable documentation complementing
w64devkit’s capabilities. In rough order of importance:
-
cppreference (HTML), friendly documentation for the C and C++
standard libraries. -
GCC manuals (PDF, HTML), to reference GCC features,
especially built-ins, intrinsics, and command line switches. -
Win32 Help File (CHM) is old, but official, Windows API
documentation. Unfortunately much is missing, such as Winsock. (Offline
Windows documentation has always been very hard to come by.) -
C Standards and C++ Standards (drafts), for
figuring out how corner cases are intended to work. -
Intel Intrinsics Guide (interactive HTML), a great resource
when working with SIMD intrinsics. (Search for «Download» on the left.) -
GNU Make manual (PDF, HTML)
-
GNU Binutils manuals (PDF, HTML), particularly
ld
andas
. -
GDB manual (PDF)
-
BusyBox man pages (TXT), though everything here is also
available via-h
option inside w64devkit. -
Intel Software Developer Manuals (PDF), for referencing x86
instructions, when either studying compiler output withobjdump
or
writing assembly.
Library installation
Except for the standard libraries and Win32 import libraries, w64devkit
does not include libraries, but you can install additional libraries such
that the toolchain can find them naturally. There are three options:
-
Install it under the sysroot at
w64devkit/$ARCH/
. The easiest option,
but will require re-installation after upgrading w64devkit. If it
defines.pc
files, thepkg-config
command will automatically find
and use them. -
Append its installation directory to your
CPATH
andLIBRARY_PATH
environment variables. Use;
to delimit directories. You would likely
do this in your.profile
. -
If it exists, append its
pkgconfig
directory to thePKG_CONFIG_PATH
environment variable, then use thepkg-config
command as usual. Use
;
to delimit directories
Both (1) and (3) are designed to work correctly even if w64devkit or the
libraries have paths containing spaces.
Unique command-line programs
-
peports
: displays export and import tables of EXEs and DLLs. Like MSVC
dumpbin
options/exports
and/imports
; narrower and more precise
than Binutilsobjdump -p
. Useful for checking if exports and imports
match your expectations. Complemented byc++filt
andvc++filt
, i.e.
in a pipeline. Pronounced like purports. -
vc++filt
: ac++filt
for Visual C++ name decorations. Used
to examine GCC-incompatible binaries, potentially to make some use of
them anyway. -
debugbreak
: causes all debugee processes to break in the
debugger, like using Windows’ F12 debugger hotkey. Especially useful for
console subsystem programs.
Notes
$HOME
can be set through the adjacent w64devkit.ini
configuration, and
may even be relative to the w64devkit/
directory. This is useful for
encapsulating the entire development environment, with home directory, on
removable, even read-only, media. Use a .profile
in the home directory
to configure the environment further.
Neither Address Sanitizer (ASan) nor Thread Sanitizer (TSan) has been
ported to Mingw-w64 (also), but Undefined Behavior Sanitizer
(UBSan) works perfectly under GDB. With both -fsanitize=undefined
and
-fsanitize-trap
, GDB will break precisely on undefined
behavior, and it does not require linking with libsanitizer.
Licenses
When distributing binaries built using w64devkit, your .exe will include
parts of this distribution. For the GCC runtime, including OpenMP, you’re
covered by the GCC Runtime Library Exception so you do not need to
do anything. However the Mingw-w64 runtime has the usual software license
headaches and you may need to comply with various BSD-style licenses
depending on the functionality used by your program: MinGW-w64 runtime
licensing and winpthreads license. To make this easy,
w64devkit includes the concatenated set of all licenses in the file
COPYING.MinGW-w64-runtime.txt
, which should be distributed with your
binaries.
This is the Windows app named Small Portable C Compiler whose latest release can be downloaded as SPCCTestRelease.zip. It can be run online in the free hosting provider OnWorks for workstations.
Download and run online this app named Small Portable C Compiler with OnWorks for free.
Follow these instructions in order to run this app:
— 1. Downloaded this application in your PC.
— 2. Enter in our file manager https://www.onworks.net/myfiles.php?username=XXXXX with the username that you want.
— 3. Upload this application in such filemanager.
— 4. Start any OS OnWorks online emulator from this website, but better Windows online emulator.
— 5. From the OnWorks Windows OS you have just started, goto our file manager https://www.onworks.net/myfiles.php?username=XXXXX with the username that you want.
— 6. Download the application and install it.
— 7. Download Wine from your Linux distributions software repositories. Once installed, you can then double-click the app to run them with Wine. You can also try PlayOnLinux, a fancy interface over Wine that will help you install popular Windows programs and games.
Wine is a way to run Windows software on Linux, but with no Windows required. Wine is an open-source Windows compatibility layer that can run Windows programs directly on any Linux desktop. Essentially, Wine is trying to re-implement enough of Windows from scratch so that it can run all those Windows applications without actually needing Windows.
Small Portable C Compiler
DESCRIPTION
SPCC is a lightweight, portable C compiler and a Virtual Machine.
Audience
Developers
Programming Language
C++
This is an application that can also be fetched from https://sourceforge.net/projects/spcc/. It has been hosted in OnWorks in order to be run online in an easiest way from one of our free Operative Systems.
Download Windows & Linux apps
- Linux apps
- Windows apps
-
1
- KompoZer
- KompoZer is a wysiwyg HTML editor using
the Mozilla Composer codebase. As
Nvu’s development has been stopped
in 2005, KompoZer fixes many bugs and
adds a f… - Download KompoZer
-
2
- Free Manga Downloader
- The Free Manga Downloader (FMD) is an
open source application written in
Object-Pascal for managing and
downloading manga from various websites.
This is a mirr… - Download Free Manga Downloader
-
3
- UNetbootin
- UNetbootin allows you to create bootable
Live USB drives for Ubuntu, Fedora, and
other Linux distributions without
burning a CD. It runs on Windows, Linux,
and … - Download UNetbootin
-
4
- Dolibarr ERP — CRM
- Dolibarr ERP — CRM is an easy to use
ERP and CRM open source software package
(run with a web php server or as
standalone software) for businesses,
foundations… - Download Dolibarr ERP — CRM
-
5
- SQuirreL SQL Client
- SQuirreL SQL Client is a graphical SQL
client written in Java that will allow
you to view the structure of a JDBC
compliant database, browse the data in
tables… - Download SQuirreL SQL Client
-
6
- Brackets
- Brackets is a free, modern open-source
text editor made especially for Web
Development. Written in HTML, CSS, and
JavaScript with focused visual tools and
prepr… - Download Brackets
- More »
Linux commands
-
1
- aarch64-linux-gnu-gcc-nm-5
- gcc-nm — a wrapper around nm adding the
—plugin option … - Run aarch64-linux-gnu-gcc-nm-5
-
2
- aarch64-linux-gnu-gcc-nm
- gcc-nm — a wrapper around nm adding the
—plugin option … - Run aarch64-linux-gnu-gcc-nm
-
3
- copyfs-daemon
- copyfs-daemon — CopyFS daemon …
- Run copyfs-daemon
-
4
- copyfs-fversion
- copyfs-fversion — manage file revisions
… - Run copyfs-fversion
-
5
- FvwmTheme
- FvwmTheme — an fvwm module for managing
the appearance of fvwm and its modules … - Run FvwmTheme
-
6
- FvwmWharf
- FvwmWharf — the AfterStep application
«dock» module ported to Fvwm. … - Run FvwmWharf
- More »
c
compiler
opensource
portable
lightweight
The Portable C Compiler (PCC) is an open-source, retargetable C compiler. It supports multiple hardware and software platforms and aims to be simple, portable, fast with light resource usage.
What is Portable C Compiler?
The Portable C Compiler (PCC) is a free, open-source and retargetable C compiler focused on providing portability, simplicity, speed, and small size. Developed originally at Bell Labs in the 1970s, PCC has evolved over decades of work by various contributors into a mature C codebase.
Some key features and goals of PCC include:
- Supports wide range of hardware platforms including x86, ARM, PowerPC, SPARC, MIPS, and more
- Supports various Unix-like systems such as Linux, BSDs, Solaris, macOS, etc.
- ANSI C89/90 and parts of C99 compliance; continuing work on improving standards conformance
- Generates code quickly with relatively low memory footprint compared to GCC
- Emphasizes simplicity, portability and performance rather than extensive optimization
- Clean and modular codebase for easy understanding and porting
While not focused on state-of-the-art optimization and language features like GCC, PCC distinguishes itself as a simple, portable and efficient baseline C compiler. Its small code size makes it well-suited for embedded systems and other resource constrained platforms. For developers needing cross-platform C compilation, PCC presents a lightweight, anachronistic yet enduring solution.
Portable C Compiler Features
Features
- Open source C compiler
- Supports multiple hardware and software platforms
- Portable across many operating systems
- Fast compilation speed
- Light resource usage
- Produces optimized code
- Supports most ANSI C features
Pros
Free and open source
Highly portable
Good performance
Lightweight and small footprint
Active development community
Cons
Lacks some advanced C99/C11 features
Limited debugging capabilities
Sparse documentation
Not as widely used as GCC or Clang
Official Links
The Best Portable C Compiler Alternatives
Top
Development
and
Compilers
and other similar apps like Portable C Compiler
GNU Compiler Collection
The GNU Compiler Collection (GCC) is an open source compiler system developed by the GNU Project for compiling multiple programming languages. Some key points about GCC:Supports compilation of popular languages like C, C++, Objective-C, Fortran, Ada, and Java.Actively developed and maintained by a large community of contributors.Aims to produce fast…
LLVM
LLVM (Low Level Virtual Machine) is an open source compiler infrastructure project that provides reusable components for building compiler front ends and back ends. It uses an intermediate representation (IR) that allows for optimization and translation to multiple targets.Some key aspects of LLVM:Focused on providing high-quality optimizing compiler componentsUses a…
Open64
Open64 is an open-source, optimizing compiler for C, C++, and Fortran programs targeted at high-performance computing systems like workstations, servers, and supercomputers. It was originally developed by SGI and is now maintained by the Open64 Foundation.Key features of Open64 include support for multiple architectures (x86-64, IA64, ARM, MIPS, PowerPC), operating…
- Portable C++ Compiler Windows
- Portable C++ Compiler
- Dev C++ Compiler Setup
Based on Dev-C Portable, Orwell Dev-C Portable is a Portable (IDE) Integrated Development Environment and Compiler for the C programming language. Sporting GCC, Mingw or Cygwin as compiler and libraries set, this C Development Environment has been ported for use within a. C/C for Visual Studio Code (Preview) C/C support for Visual Studio Code is provided by a Microsoft C/C extension to enable cross-platform C and C development on Windows, Linux, and macOS. Getting started C/C compiler and debugger. The C/C extension does not include a C compiler. These compilers can create both 32bit and 64bit executables and generally ship with much more Microsoft related headers and libraries. When you place these compilers in Dev-CppMinGW64, Dev-C can automatically configure them on first launch or via Tools Compiler Options Find Compilers. Hi, I’m working on a very restrictive PC, so and I’m looking for a portable c/c compiler. At this time I didn’t find any suitable application. My first step was to install cygwin portable, installation process ended successfully but default installation does not include gcc/g. In addition when I tried to update and install needed cygwin packages to include gcc/g. Dev-C Portable is an open-source (GPL) integrated development environment application: An environment for developing C and C. The download is available as a.
Portable C++ Compiler Windows
C/C++ support for Visual Studio Code is provided by a Microsoft C/C++ extension to enable cross-platform C and C++ development on Windows, Linux, and macOS.
Nov 10, 2016 Dev-C is an integrated development environment (IDE) for the C programming language. It presents a feature-rich environment, tools for writing and debugging, as well as a compiler to provide you with all the tools necessary to program software in C.The program is a fork of the Bloodshed Dev-C environment, designed for advanced programmers looking to create applications.
Getting started
C/C++ compiler and debugger
Portable C++ Compiler
The C/C++ extension does not include a C++ compiler or debugger. You will need to install these tools or use those already installed on your computer.
A UA exclusive, the Antares Auto-Tune Realtime Advanced plug-in improves the previous UAD version with powerful workflow and sonic enhancements, making it the ultimate ultra-low-latency tuning solution for Apollo and Arrow interfaces — optimized for instant live vocal tracking in the studio or on stage. Uad antares auto tune realtime.
Popular C++ compilers are:
- GCC on Linux
- GCC via Mingw-w64 on Windows
- Microsoft C++ compiler on Windows
- Clang for XCode on macOS
Make sure your compiler executable is in your platform path so the extension can find it. You can check availability of your C++ tools by opening the Integrated Terminal (⌃` (Windows, Linux Ctrl+`)) in VS Code and try running the executable (for example g++ --help
).
Install the Microsoft C/C++ extension
Dev C++ Compiler Setup
- Open VS Code.
- Click the Extensions view icon on the Sidebar (⇧⌘X (Windows, Linux Ctrl+Shift+X)).
- Search for
c++
. - Click Install.
Hello World tutorials
Get started with C++ and VS Code with Hello World tutorials for your environment:
Documentation
You can find more documentation on using the Microsoft C/C++ extension under the C++ section, where you’ll find topics on:
Remote Development
VS Code and the C++ extension support Remote Development allowing you to work over SSH on a remote machine or VM, inside a Docker container, or in the Windows Subsystem for Linux (WSL).
To install support for Remote Development:
- Install the VS Code Remote Development Extension Pack.
- If the remote source files are hosted in WSL, use the Remote — WSL extension.
- If you are connecting to a remote machine with SSH, use the Remote — SSH extension.
- If the remote source files are hosted in a container (for example, Docker), use the Remote — Containers extension.
Feedback
If you run into any issues or have suggestions for the Microsoft C/C++ extension, please file issues and suggestions on GitHub. If you haven’t already provided feedback, please take this quick survey to help shape this extension for your needs.