使用scintilla编译c++方法

原创 2007年10月05日 15:47:00

     最近发现一个开源文本编辑器scintilla,速度快,提供语法高亮等功能,可以用来编程.不过编译程序要自己配置,这个比较麻烦.在网上寻得此文,讲的不错.  十分感谢原作者.

[分享]scintilla + bcc55打造简洁的c++开发环境  转自www.LiDuan.com

你也可以用DEV-C++, 但是gc++在windows环境下表现得并不好。比如, 写个很简单的代码,只包括一条cout,
用dev-cpp编译出来有500k, 用bc5.5编译只有111k, 我写的unix时间戳转换用dev-cpp编译900k,
bcc5.5编译200k(g++在linux下编译14k).  因此,我建议初学者在windows下使用别的编译器。

borland c++ compile 5.5(bcc55)就是很好的选择, 免费下载使用。

borland c++ compile 5.5下载:
http://www.codegear.com/Do...

borland c++ compile 5.5 sp2 下载:
http://info.borland.com/de...

scintilla1.73 (sc)下载:
http://prdownloads.sourcef.../

bcc55的安装很简单,直接解压缩到一个目录下, 我放到c:/bcc 下面, 然后是配置bcc55,  需要在c:/bcc/bin下创建两个文件  ilink32.cfg和bcc32.cfg,可以用记事本,也可以用sc. 文件的内容如下

ilink32.cfg

程序代码:

-v-
-x
-L"C:/BCC/LIB;C:/BCC/LIB/PSDK"

(路径根据自己的情况修改)

bcc32.cfg
程序代码:

-I"C:/BCC/INCLUDE"
-L"C:/BCC/LIB;C:/BCC/LIB/PSDK"
-P
-v-
-w
-DWINVER=0x0400
-D_WIN32_WINNT=0x0400

(路径根据自己的情况修改)

配置完毕后就开始安装sc.  解压缩下载的zip文件,然后将所有的文件(不是目录)复制到c:/bcc/bin  下。 双击SciTE.exe运行sc. 然后开始sc的配置。

sc的配置完全是linux风格的。 它将所有的选项写在文本文件里。 只需要修改文本文件就可以配置sc。

首先要对c语言的命令格式进行修改。sc的命令格式仅仅支持gcc, 需要修改为bcc的命令格式, 打开Options 选择 Open cpp.properties  



在这个文件中查询一下代码(应该在文件的后半部分接近底部)。
程序代码:

ccopts=-pedantic -Os
cc=g++ $(ccopts) -c $(FileNameExt) -o $(FileName).o
ccc=gcc $(ccopts) -c $(FileNameExt) -o $(FileName).o

make.command=make
command.compile.*.c=$(ccc) -std=c99
command.build.*.c=$(make.command)
command.go.*.c=$(FileName)
# To make the Go command both compile (if needed) and execute, use this setting:
#command.go.needs.*.c=gcc $(ccopts) -std=c99 $(FileNameExt) -o $(FileName)

command.compile.$(file.patterns.cplusplus)=$(cc)
command.build.$(file.patterns.cplusplus)=$(make.command)
command.go.$(file.patterns.cplusplus)=./$(FileName)
command.go.needs.$(file.patterns.cplusplus)=g++ $(ccopts) $(FileNameExt) -o $(FileName)

command.build.*.h=$(make.command)

command.name.0.$(file.patterns.cpp)=Indent
command.0.$(file.patterns.cpp)=astyle -tapOK -M8 $(FileNameExt)
command.is.filter.0.$(file.patterns.cpp)=1

command.name.1.$(file.patterns.cplusplus)=Lint
command.1.$(file.patterns.cplusplus)=g++ -W -Wall -Wshadow -Wwrite-strings -Wold-style-cast /
    -Woverloaded-virtual -pedantic -Os -fno-exceptions -c $(FileNameExt)

全部替换为下列代码:
程序代码:

cc=bcc32 -v- -w -O1 $(FileNameExt)

command.compile.*.c=$(cc)
command.build.*.c=make
command.go.*.c=$(FileName)

command.compile.*.cc=$(cc)
command.build.*.cc=make
command.go.*.cc=$(FileName)

command.compile.*.cpp=$(cc)
command.build.*.cpp=make
command.go.*.cpp=$(FileName)

command.compile.*.cxx=$(cc)
command.build.*.cxx=make
command.go.*.cxx=$(FileName)

保存关闭sc, 现在sc就可以进行c++的开发了。但是不能直接运行SciTE.exe  需要将其置于系统路径下运行。 运行方法是在c:/bcc下面建立一个cmd文件。
比如start.cmd内容如下:
程序代码:

path=C:/BCC/BIN;%PATH%
DOSKEY /INSERT
START C:/BCC/BIN/SciTE.EXE
exit


(注意 系统路径 c:/bcc/bin根据自己的情况修改)

保存, 然后点击start.cmd运行sc, 可以编写cpp文件进行测试。
比如test.cpp  内容如下:

#include <iostream>
using namespace std;

int main()
{
    cout << "Welcome www.LiDuan.com" << endl;
}

编辑完后保存,选择tools 里面的compile进行编译。 在选择 go运行, 就可以在右面看到程序的输出结果了。



然而,这个编辑器还不够人性化, 比如本人喜欢给每行编号。  还有当前行高亮显示。 这些需要对sc的全局进行设置
在Options 选择 Open SciTEGlobal.properties

行号码,找到:
程序代码:

#line.margin.visible=1
line.margin.width=4
margin.width=16

改为:
程序代码:

line.margin.visible=1
line.margin.width=4+
margin.width=16


当前行高亮 找到:
程序代码:

#caret.fore=#FF0000
#caret.width=2
#caret.line.back=#FFFED8
#caret.line.back.alpha=63


改为:
程序代码:

caret.fore=#FF0000
caret.width=2
caret.line.back=#FFFED8
caret.line.back.alpha=63

起始窗口大小 修改:
程序代码:

position.width=576
position.height=740


关闭重新启动就行了。当然你也可以配置一个sc + gcc的编辑器。  配置方法基本相同。 只是不用修改cpp.properties文件。 下图是配置的两种环境对比。 上面是bcc,下面是gcc.


scintilla也可以在linux下运行, 配置方法可以参阅我的个人博客
 

Scintilla 3.24在MFC中的使用(动态、静态)

Scintilla是一个免费的源代码编辑组件。在这里记录下它在MFC中的使用。 本机环境:Windows XP、Visual Studio 2008 SP1 1.下载Scintilla源代码3.2...
  • akof1314
  • akof1314
  • 2013年02月17日 18:08
  • 10520

Scintilla 在MFC中的简易使用(动态、静态)

Scintilla 在MFC中的简易使用(动态、静态)  Scintilla是一个开源的源代码编辑组件。在这里记录下它在MFC中的简易使用。 Scintilla 3.24在MFC中的使用(动态...
  • gocad
  • gocad
  • 2013年04月17日 14:50
  • 2432

QsciScintilla的使用方法总结(一个很好用的文本编辑器库)

今天就整理一下Qt下使用qsciscintilla的心得吧。什么是qsciscintillaScintilla是一个免费、跨平台、支持语法高亮的编辑控件。它完整支持源代码的编辑和调试,包括语法高亮、错...
  • qq_19528953
  • qq_19528953
  • 2016年09月25日 11:26
  • 4088

利用scintilla实现高级编辑器

scintilla是一款开源的编辑器组件,在windows上以动态库存在,目前在notepad++,codeblock都是用该组件完成大部分编辑功能。网上绝大部分是用c++builder来调用scin...
  • sstower
  • sstower
  • 2013年09月19日 10:56
  • 2327

Windows下Scintilla的编译,使用

下载了Scintilla的源码,在网上搜索资料自己摸索着编译,出现很多问题,现将解决方法总结: 1.下载Scintilla的源代码。(http://scintilla.sourceforge.n...
  • u011330877
  • u011330877
  • 2016年10月31日 14:05
  • 400

Scintilla开源库使用指南(一)

Scintilla开源库使用指南(一) Scintilla是一个免费、跨平台、支持语法高亮的编辑控件。它完整支持源代码的编辑和调试,包括语法高亮、错误指示、代码完成(code completio...
  • aasmfox
  • aasmfox
  • 2016年08月23日 10:31
  • 542

嵌入式 Notepad++快捷键小结

Notepad++绝对是windows下进行程序编辑的神器之一,要更快速的使用以媲美VIM,必须灵活掌握它的快捷键,下面对notepad++默认的快捷键做个整理(其中有颜色的为常用招数): 1....
  • skdkjxy
  • skdkjxy
  • 2014年10月08日 18:37
  • 950

支持按行号区域文本选择的NotePad++插件开发

最近发现NotePad++不支持按行号区间的文本复制,就想自己动手开发一个NotePad++插件,支持输入起始行号和结束行号,然后复制该区域的文本到新文档或者复制到系统剪切板,方便文本的操作。效果如下...
  • xiaoding133
  • xiaoding133
  • 2015年07月18日 23:37
  • 1590

XmlParser: 简易的 Xml 解析器的实现(三)

一、引言在前面的章节里面,我完成了一个麻雀虽小但是五脏俱全的 Xml 解析库(额,也就一个类三个数据结构,叫作库真有些脸红 T_T)。那么我们那么辛苦地造出来了的轮子,不用来跑跑怎么行呢?这里我使用了...
  • u012814856
  • u012814856
  • 2017年07月01日 16:54
  • 391

C++编译器是如何管理类和对象的,类的成员函数和成员变量

1、C++中的class从面向对象理论出发,将变量(属性)和函数(方法)集中定义在一起,用于描述现实世界中的类。从计算机的角度,程序依然由数据段(栈区内存)和代码段(代码区内存)构成。 那么C+...
  • HelloNiGeSB
  • HelloNiGeSB
  • 2016年06月25日 16:35
  • 757
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用scintilla编译c++方法
举报原因:
原因补充:

(最多只允许输入30个字)