Compiler Notes:
For all compilers: if you get a shlwapi.h error, look for the Mini Repair Kit in ReadmeDevC++CodeBlocks.txt
**MSVC: (functional, code size=650K) Works fine. Doesn't compile RES files right.
Go into the MSVC Compiler Advanced Options (Compile | Compiler Options | (select compiler) | Other | Advanced Options) and change:
Compile Win32 Resource File: $rescomp $includes $res_includes -fo$resource_output $file
If you get a CVTRES.EXE error, look for the Mini Mini Repair Kit in ReadmeDevC++CodeBlocks.txt
**MinGW: (functional, size=1100K) Code::Blocks is mishandling the .rc files. The same .rc files handled by Dev-C++ or Code::Blocks-MSVC builds NPP correctly. If I eliminate all the individual .rc files from the project and only include Notepad_private.rc from Dev-C++ Code::Blocks builds a working executable. A modified Notepad_plus.cpp is included for MinGW compatibility.
**DMC+STLport addon+SDK Update: (functional, code size=1300K) Code::Blocks mishandles the .rc files. Notepad++.EXE and Notepad++_private.rc have been renamed because DMC does not permit + in most filenames. You will need to update the old and outdated .h and .lib files as described in ReadmeDevC++CodeBlocks.txt. Check out the funky about dialog.
DMC's resource compiler is out of date and the linker settings aren't right. OpenWatcom WRC.EXE and MinGW/GCC WINDRES.EXE produce incompatible .res files. The Resource Compiler in the Microsoft SDK works. Go into the DMC Compiler Advanced Options (Compile | Compiler Options | (select compiler) | Other | Advanced Options) and change:
Link Object Files to Executable: $compiler -L/subsystem:windows -WA -mn $link_options $link_objects -o $exe_output $libs $link_resobjects
With this command, some existing link options may need to be modified to -L/opt to work.
Compile Win32 Resource File: $rescomp $includes $res_includes -fo$resource_output $file
... Then go to the DMC programs (Compile | Compiler Options | (select compiler) | Programs) and change:
Resource Compiler: c:\Program Files\Microsoft Platform SDK\Bin\RC.Exe
**Borland-C: (functional, size=850K) Code::Blocks mishandles the .rc files. I use Notepad_private.rc that Dev-C++ assembles. The Borland Resource Compiler is outdated. Replace it with the Microsoft Platform SDK RC.EXE in the DMC solution above. A modified Buffer.h and ScintillaEditView.cpp is provided for Borland compatibility. If I could update the SDK in Borland C, these updated files would not be necessary.
***
Opinion: MSVC produces the smallest code and supports all the latest stuff without hacking files. Other compilers are good for warnings and comments on the code but unless you are into experimenting, the MSVC compiler does the best all-around job. Besides, it's the compiler on which Don has best tested Notepad++, though oddly enough, the MSVC compile is the only one that generates a Windows crash in addition to the 3 error dialogs when it can't find the config files at startup. Because I have imported the Code::Blocks MSVC project from the Visual Studio .vcproj file, Code::Blocks-VC has the exact same options used and therefore produces exactly the same size code. If you can get the missing files kit, it is completely unnecessary to have Visual Studio to develop Scintilla or Notepad++ and you have 4 compilers to choose from.
评论0