Scintilla 3.2.5在VC中的编译(动态、静态)

Scintilla 3.2.5在VC中的编译(动态、静态)

Scintilla是一个开源的源代码编辑组件。

1.   下载Scintilla源代码(http://www.scintilla.org/ScintillaDownload.html

本文使用3.2.5版本

2.编译动态链接库 SciLexer.dll

使用 “打开 Visual Studio 20** 命令提示”菜单,进入 VC 的命令行编译环境。

根据 Readme, 进入 scintilla\win32 目录

VC6 运行 nmake -f scintilla_vc6.mak

VC2008 2010 运行 nmake -f scintilla.mak

VC2002 2003 2005运行 nmake -f scintilla.mak (需将 scintilla.mak中的 -MP 编译设置去除)

这样将在 scintilla\bin 中得到 编译好的动态链接库SciLexer.dll 和 Scintilla.dll。

3.   编译静态链接库 ScintillaLib.lib

第一种方法: 参照 Scintilla 3.24在MFC中的使用(动态、静态)

1.创建一个静态库工程,名称为:ScintillaLib
2.将scintilla源代码文件夹放到工程目录下,将lexers、lexlibsrcwin32目录下的文件添加到工程。
3.工程属性,C/C++→General→Additional Include Directories填入.\scintilla\include;.\scintilla\lexlib;.\scintilla\src
C/C++→Preprocessor→Preprocessor Definitions填入STATIC_BUILD;SCI_LEXER
4.注释掉CheckD2D.cxx文件里面的内容。
5.编译完成。

第二种方法:仍然使用 makefile 文件,命令行编译

修改scintilla.mak ,并另存为 scintilla_lib.mak

 

在 LEXLIB=Lexers.lib 之后增加

SCINTILLALIB = $(DIR_BIN)\ScintillaLib

 

修改

CXXFLAGS=-Zi -TP -MP -W4 -EHsc -Zc:forScope -Zc:wchar_t-D_CRT_SECURE_NO_DEPRECATE=1

CXXFLAGS=-TP -W3 -EHsc -DWIN32 -D_LIB

 

修改

CXXNDEBUG=-O1 -MT -DNDEBUG -GL

CXXNDEBUG=-O1 -MT -DNDEBUG

 

添加

!IFDEF DEBUG

CXXFLAGS=$(CXXFLAGS) $(CXXDEBUG)

LDFLAGS=$(LDDEBUG) $(LDFLAGS)

SCINTILLALIB =$(SCINTILLALIB)d.lib

!ELSE

CXXFLAGS=$(CXXFLAGS) $(CXXNDEBUG)

SCINTILLALIB =$(SCINTILLALIB).lib

!ENDIF

 

 

修改

ALL:   $(COMPONENT) $(LEXCOMPONENT)$(LEXLIB) $(DIR_O)\ScintillaWinS.obj

ALL:   $(SCINTILLALIB)

 

 

$(LEXLIB): $(LEXOBJS)

    LIB /OUT:$@ $(LEXOBJS)

之后增加

$(SCINTILLALIB): $(LOBJS) $(DIR_O)\ScintRes.res

    $(LD) /lib/OUT:$@ $**

 

 

运行 nmake -f scintilla_lib.mak 编译得到 ScintillaLib

 

猜你喜欢

转载自blog.csdn.net/gocad/article/details/8813732