实战Windows下编译Opencc 1.0.5
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目录下,当然还有配置文件。
四、总结
opencc本身基于cmake写好编译配置,比较方便,但更新较早,对VS高版本支持不好,需手工修改;
附编译好的程序:
OpenCC-1.0.5-Win32
实战Windows下编译Opencc 1.0.5相关推荐
- windows下编译Sqlite-3.38.0及使用(存储json)
一.Sqlite简介 SQLite 是一个软件库,实现了自给自足的.无服务器的.零配置的.事务性的 SQL 数据库引擎.SQLite 是在世界上最广泛部署的 SQL 数据库引擎. SQLite是一款轻 ...
- Windows下编译扩展OpenCV 3.1.0 + opencv_contrib
在Windows下编译扩展OpenCV 3.1.0 + opencv_contrib 为什么要CMake,这里我陈述自己的想法,作为一个刚使用opencv库的小白来说,有以下大概三点内容 1.由于在学 ...
- 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 ...
- Windows下编译Chrome V8
主要还是参考google的官方文档: How to Download and Build V8 Building on Windows 同时也参考了一些其它的中文博客: 脚本引擎小pk:SpiderM ...
- 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 ...
- Windows下编译tensorflow-gpu教程
这两个也要看: https://zhuanlan.zhihu.com/p/29029860 https://zhuanlan.zhihu.com/p/34942873 Windows下编译tensor ...
- Windows下编译TensorFlow1.3 C++ library及创建一个简单的TensorFlow C++程序
参考:https://www.cnblogs.com/jliangqiu2016/p/7642471.html Windows下编译TensorFlow1.3 C++ library及创建一个简单的T ...
- windows下编译支持https的curl
先编译好openssl,过程详见:<windows下编译openssl> 编译好zlib,过程详见<windows下编译zlib> 1. 下载curl 官网:https://c ...
- 在Windows下编译FFmpeg详细说明
在Windows下编译FFmpeg详细说明 MinGW:一个可自由使用和自由发布的Windows特定头文件和使用GNC工具集导入库的集合,允许你生成本地的Windows程序而不需要第三方C运行时 Mi ...
最新文章
- PNAS | 根际植保素合成调控细菌对植物的促生长作用
- python自带库处理excel-【Python】处理Excel的库Xlwings
- cad工具箱详细讲解_2019CAD教程讲解 插件工具箱,从安装到应用整个过程,手把手教你...
- 12.1 Bootstrap介绍
- ubantu实现linux命令的实验_linux 基础知识
- [haoi2011]向量
- 区块链架构与应用(区块链入门篇)
- 王家林Spark笔记
- Android 内存剖析 – 发现潜在问题
- Install VirtualBox Guest Additions for elementary os
- 基础图像处理 python+opencv
- x1 php168,新手快速入门教程
- SQLServer创建表,插入数据,查询,创建触发器,存储过程
- 固定资产管理系统怎么选,详细评测为你解答
- 标签添加图片Label
- 1000 以内的水仙花数java
- mysql 怎么反选_全选与反选
- 浙江大学 工程伦理 第八单元测试答案
- 跨越平台桌面应用开发框架electron使用的心路历程
- 《人工智能及其应用》课程笔记(一)第1章 绪论
热门文章
- 独立站卖家如何把握关键词优化
- java解析excel的工具_Java 解析 Excel 工具 easyexcel
- 微信小程序 刻度计/温度计组件(自用)
- MySQL升级的最佳实践
- 亲民地理-第48期-西雅图波音飞机总装工厂_我是亲民_新浪博客
- 基于MegEngine实现图像分类【附部分源码及模型】
- EnterCriticalSection 和 LeaveCriticalSection
- js:面向对象编程,带你认识封装、继承和多态
- jQuery学习教程五:jQuery 效果 - 淡入淡出, Fading 方法
- golang grpc