Opencc是中文简繁转换开源项目,支持词汇级别的转换、异体字转换和地区习惯用词转换(中国大陆、台湾、香港)。

特点

严格区分「一简对多繁」和「一简对多异」。
完全兼容异体字,可以实现动态替换。
严格审校一简对多繁词条,原则为「能分则不合」。
支持中国大陆、台湾、香港异体字和地区习惯用词转换,如「里」「里」、「鼠标」「滑鼠」。
词库和函数库完全分离,可以自由修改、导入、扩展。
支持C、C++、Python、PHP、Java、Ruby、Node.js and Android。
兼容Windows、Linux、Mac平台。

***  ***  ***
运行环境:Win10

编译工具:TDM-GCC/VS2017
***  ***  ***
Opencc提供的windows程序是最早的1.0.1,网上有别人编译1.0.4,没有运行起来,而且体积庞大,因此想自己编译一个,在此记录一下。
一、首先下载源码包

git clone https://github.com/BYVoid/OpenCC.git
cd OpenCC

目录中有CMakeLists.txt文件,需要去下载 CMake。
二、编译器选择
直接使用Make命令,提示错误,看来需要重新编写Makefile文件。
windows下编译C++程序,不想安装庞大的VS,所以首先想到的是MinGW,但也是有不少错误,最后选定 TDM-GCC成功。

cmake -H. -Bbuild -G "MinGW Makefiles"

运行上面命令可以重新生成Makefile文件,会在目录新建build文件。

打开CMake-gui,指定到编译目录,可以编辑Makefile文件,以下参数需要修改,在此编译最小运行版本,指定为MINSIZEREL。

CMAKE_BUILD_TYPE = MINSIZEREL
CMAKE_CXX_FLAGS = -static -s -pipe
CMAKE_CXX_FLAGS_MINSIZEREL = -Os -fno-rtti -fnothrow-opt -fno-threadsafe-statics -fnothrow-opt -Wall -fmessage-length=0 -DNDEBUG

保存时无错误,便可运行下列命令进行编译。

cmake --build build --config MINSIZEREL

解决了一些程序代码的错误,编译出来的文件大小吓死人,因此放弃其他编译器,老老实实使用VS吧。
考虑到体积,win10下我安装VS2015,竟然没有任何反应,所以下载 vs2017_BuildTools,安装好必要的工具后体积10G,真是欲哭无泪……
为了保障低版本运行库的支持,我选定VS2015的编译工具,在安装需要注意。

三、使用VS BuildTools 2017编译
在此之前需要进行下列修改:
1. CMakeList.txt 里的变量修改, 有多处需要修改:
删除对于常量的引用,比如"${CMAKE_CXX_FLAGS}"改为CMAKE_CXX_FLAGS;
2. 转换x:\OpenCC\src\PhraseExtract.cpp为Unicode格式;
3. 转换x:\OpenCC\data\dictionary\所有字典文件为utf-8+格式
在网上查了一下,c++处理utf8有些困难???不解……
4. 下载最新版rapidjson覆盖

git clone https://github.com/Tencent/rapidjson.git

x:\rapidjson-1.1.0\include\rapidjson\ 所有文件复制到 x:\OpenCC\deps\rapidjson-0.11\
0.11版本太旧,有许多不能支持VC2015的格式,所以需要更新一下。
5. 修改x:\OpenCC\src\UTF8StringSlice.hpp,加入标头

#pragma once

做好上述准备后,运行下列命令,重新生成Makefile文件:

cmake -H. -Bbuild -G"Visual Studio 15" -DCMAKE_INSTALL_PREFIX="c:/opencc"

64位程序使用下列命令:

cmake -H. -Bbuild -G"Visual Studio 15 Win64" -DCMAKE_INSTALL_PREFIX="c:/opencc"

打开Cmake-gui,修改:

CMAKE_BUILD_TYPE = Debug;Release;MinSizeRel;RelWithDebInfo
CMAKE_CXX_FLAGS = /DWIN32 /D_WINDOWS /W0 /GR /EHsc /D_CRT_SECURE_NO_WARNINGS
CMAKE_CXX_FLAGS_RELEASE = /MD /O2 /Ob2 /DNDEBUG

保存无错误后,运行:

cmake --build build --config Release

主运行程序位于build/release目录下,生成的字典在data目录下,当然还有配置文件。

四、总结

windows下编译C++程序,最好的还是VS,其他编译器生成的文件都大的怕人;
opencc本身基于cmake写好编译配置,比较方便,但更新较早,对VS高版本支持不好,需手工修改;
编译64位时,出现Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.12.25827\include\setjmp.h 165行的longjmp错误!!!这个真不知道是什么鬼,我是删除掉那儿的几行代码编译成功的。

附编译好的程序:
OpenCC-1.0.5-Win32

OpenCC-1.0.5-Win64

实战Windows下编译Opencc 1.0.5相关推荐

  1. windows下编译Sqlite-3.38.0及使用(存储json)

    一.Sqlite简介 SQLite 是一个软件库,实现了自给自足的.无服务器的.零配置的.事务性的 SQL 数据库引擎.SQLite 是在世界上最广泛部署的 SQL 数据库引擎. SQLite是一款轻 ...

  2. Windows下编译扩展OpenCV 3.1.0 + opencv_contrib

    在Windows下编译扩展OpenCV 3.1.0 + opencv_contrib 为什么要CMake,这里我陈述自己的想法,作为一个刚使用opencv库的小白来说,有以下大概三点内容 1.由于在学 ...

  3. vs2015编译linux源码,使用Visual Studio 2017(VS2017)编译OpenCC 1.0.4 (Open Chinese Convert)源代码...

    摘要:本文介绍了Win7 64位环境下OpenCC(Open Chinese Convert) 1.0.4源码编译全过程,除VS2017外,VS2013以上版本也应该基本同样适用,其他版本的Windo ...

  4. Windows下编译Chrome V8

    主要还是参考google的官方文档: How to Download and Build V8 Building on Windows 同时也参考了一些其它的中文博客: 脚本引擎小pk:SpiderM ...

  5. Windows下编译 Hadoop

    Windows下编译 Hadoop-2.9.2 系统环境 系统: Windows 10 10.0_x64 maven: Apache Maven 3.6.0 jdk: jdk_1.8.0_201 Pr ...

  6. Windows下编译tensorflow-gpu教程

    这两个也要看: https://zhuanlan.zhihu.com/p/29029860 https://zhuanlan.zhihu.com/p/34942873 Windows下编译tensor ...

  7. Windows下编译TensorFlow1.3 C++ library及创建一个简单的TensorFlow C++程序

    参考:https://www.cnblogs.com/jliangqiu2016/p/7642471.html Windows下编译TensorFlow1.3 C++ library及创建一个简单的T ...

  8. windows下编译支持https的curl

    先编译好openssl,过程详见:<windows下编译openssl> 编译好zlib,过程详见<windows下编译zlib> 1. 下载curl 官网:https://c ...

  9. 在Windows下编译FFmpeg详细说明

    在Windows下编译FFmpeg详细说明 MinGW:一个可自由使用和自由发布的Windows特定头文件和使用GNC工具集导入库的集合,允许你生成本地的Windows程序而不需要第三方C运行时 Mi ...

最新文章

  1. PNAS | 根际植保素合成调控细菌对植物的促生长作用
  2. python自带库处理excel-【Python】处理Excel的库Xlwings
  3. cad工具箱详细讲解_2019CAD教程讲解 插件工具箱,从安装到应用整个过程,手把手教你...
  4. 12.1 Bootstrap介绍
  5. ubantu实现linux命令的实验_linux 基础知识
  6. [haoi2011]向量
  7. 区块链架构与应用(区块链入门篇)
  8. 王家林Spark笔记
  9. Android 内存剖析 – 发现潜在问题
  10. Install VirtualBox Guest Additions for elementary os
  11. 基础图像处理 python+opencv
  12. x1 php168,新手快速入门教程
  13. SQLServer创建表,插入数据,查询,创建触发器,存储过程
  14. 固定资产管理系统怎么选,详细评测为你解答
  15. 标签添加图片Label
  16. 1000 以内的水仙花数java
  17. mysql 怎么反选_全选与反选
  18. 浙江大学 工程伦理 第八单元测试答案
  19. 跨越平台桌面应用开发框架electron使用的心路历程
  20. 《人工智能及其应用》课程笔记(一)第1章 绪论

热门文章

  1. 独立站卖家如何把握关键词优化
  2. java解析excel的工具_Java 解析 Excel 工具 easyexcel
  3. 微信小程序 刻度计/温度计组件(自用)
  4. MySQL升级的最佳实践
  5. 亲民地理-第48期-西雅图波音飞机总装工厂_我是亲民_新浪博客
  6. 基于MegEngine实现图像分类【附部分源码及模型】
  7. EnterCriticalSection 和 LeaveCriticalSection
  8. js:面向对象编程,带你认识封装、继承和多态
  9. jQuery学习教程五:jQuery 效果 - 淡入淡出, Fading 方法
  10. golang grpc