4.3 KiB
Building Notepad++ with Microsoft Visual Studio
Pre-requisites:
- Microsoft Visual Studio 2017 (C/C++ Compiler, v141 toolset for win32, x64, arm64)
There are two components which are built from one visual studio solution:
notepad++.exe
: (containslibSciLexer.lib
)libSciLexer.lib
: static library based on Scintilla
Notepad++ is always built with Boost regex PCRE support instead of default c++11 regex ECMAScript used by plain Scintilla\SciLexer.
Build notepad++.exe
:
- Open
PowerEditor\visual.net\notepadPlus.sln
- Select a solution configuration (Debug or Release) and a solution platform (x64 or Win32 or ARM64)
- Build Notepad++ solution like a normal Visual Studio project. This will also build the dependent SciLexer project.
Build libSciLexer.lib
:
As mentioned above, you'll need libSciLexer.lib
for the Notepad++ build. This is done automatically on building the whole solution. So normally you don't need to care about this.
Build libSciLexer.lib
with boost via nmake:
This is not necessary any more and just here for completeness as this option is still available. Boost is taken from boost 1.76.0 and stripped down to the project needs available at boost in this repo.
- Open the Developer Command Prompt for Visual Studio
- Go into the
scintilla\win32\
- Build the same configuration as notepad++:
- Release:
nmake -f scintilla.mak
- Debug:
nmake DEBUG=1 -f scintilla.mak
- Example:
nmake -f scintilla.mak
- Release:
History:
More about the previous build process: https://community.notepad-plus-plus.org/topic/13959/building-notepad-with-visual-studio-2015-2017
Since Notepad++
version 6.0 - 7.9.5, the build of dynamic linked SciLexer.dll
that is distributed
uses features from Boost's Boost.Regex
library.
Building Notepad++ with GCC
If you have MinGW-w64 installed, you can compile Notepad++ with GCC.
MinGW-w64 can be downloaded here. Building Notepad++ is regularly tested on a Windows system with x86_64-8.1.0-release-posix-seh-rt_v6-rev0 for building 64-bits binary and with i686-8.1.0-release-posix-dwarf-rt_v6-rev0 versions for building 32-bits binary. Other versions may also work but are untested.
Note: If you use MinGW-w64 GCC from a package (7z), you need to manually add the $MinGW-root$\bin
directory to the system PATH
environment variable for the mingw32-make
invocation below to work. One can use a command like set PATH=$MinGW-root$\bin;%PATH%
each time cmd
is launched. But beware that if PATH
contains several versions of MinGW-w64 GCC, only the first one will be usable.
Compiling Notepad++ binary
- Launch
cmd
and add$MinGW-root$\bin
toPATH
if necessary. cd
intonotepad-plus-plus\PowerEditor\gcc
.- Run
mingw32-make
. - The 32-bit or 64-bit
notepad++.exe
will be generated either inbin.i686
or inbin.x86_64
directory respectively, depending on the target CPU of the compiler — look for the full path to the resulting binary at the end of the build process.
- The directory containing
notepad++.exe
will also contain everything needed for Notepad++ to start. - To have a debug build just add
DEBUG=1
to themingw32-make
invocation above. The output directory then will be suffixed with-debug
. - To see commands being executed add
VERBOSE=1
to the same command. - When switching between compilers or between release/debug modes,
mingw32-make clean
must be executed first. - If you are building the project outside of the
PowerEditor/gcc
directory, for example when using-f
option, then the entire project path must not contain any spaces. Additionally, the path tomakefile
of this project should be listed as first.