glib windows build

1、首先下载glib的依赖库 source codes。
gettext ( libintl ) 库:
libiconv 库:
libffi 库:
pcre 库:
zlib 库:
2、下载完成后,采用 vs2013 进行对各个库进行编译的。
build libintl 库 :修改头文件 libgnuintl.h ,包括两部分:
一:修改 C++ 部分接口定义,如下:
#ifdef _INTL_REDIRECT_INLINE
extern char *libintl_gettext (const char *__msgid)
_INTL_MAY_RETURN_STRING_ARG (1);
extern char *gettext(const char *__mgsid);
二:修改 C 部分接口定义,如下:
#else
DLL_EXPORTED char *gettext (const char *__msgid)
_INTL_MAY_RETURN_STRING_ARG (1);
#endif
其他接口也类似。
 
build libiconv 库:不需要修改,可直接编译。
 
build libffi 库:不需要修改,可直接编译。
 
build pcre 库:
(1)、将 config.h.in 文件重命名为config.h,并将文件中 #define HAVE_STRERROR 0和#defineHAVE_MEMMOVE 0 改成 #define HAVE_STRERROR 1 和 #define HAVE_MEMMOVE 1。
(2)、新建一个项目,添加源文件 dftables.c,编译生成 dftables.exe 文件,然后在cmd命令行中执行如下命令:dftables.exe pcre_chartables.c。
(3)、新建动态库项目 pcre,添加源文件:
pcre_chartables.c
pcre_compile.c
pcre_config.c
pcre_dfa_exec.c
pcre_exec.c
pcre_fullinfo.c
pcre_get.c
pcre_globals.c
pcre_info.c
pcre_maketables.c
pcre_newline.c
pcre_ord2utf8.c
pcre_printint.src
pcre_refcount.c
pcre_study.c
pcre_tables.c
pcre_try_flipped.c
pcre_ucp_searchfuncs.c
pcre_valid_utf8.c
pcre_version.c
pcre_xclass.c
添加头文件:
config.h
pcre.h
pcre_internal.h
pcre_scanner.h
pcrecpp.h
pcreposix.h
ucp.h
ucpinternal.h
(4)、打开 pcre.h 头文件,添加如下代码:
#define PCRE_MAJOR 7
#define PCRE_MINOR 0
#define PCRE_PRERELEASE
#define PCRE_DATE 18-Dec-2006
 
/* When building a DLL, we must export some functions. Note that because
the functions are only defined for binary backward compatibility, we
don't need to use __declspec(dllimport) in any case. */
#if HAVE_VISIBILITY && BUILDING_DLL
# define DLL_EXPORTED __attribute__((__visibility__("default")))
#elif defined _MSC_VER && BUILDING_DLL
# define DLL_EXPORTED __declspec(dllexport)
#else
# define DLL_EXPORTED
#endif
 
/* Win32 uses DLL by default; it needs special stuff for exported functions
when building PCRE. */
 
#ifdef _WIN32
# ifdef PCRE_DEFINITION
# ifdef DLL_EXPORTED
# define PCRE_DATA_SCOPE __declspec(dllexport)
# endif
# else
# ifndef PCRE_STATIC
# define PCRE_DATA_SCOPE extern __declspec(dllimport)
# endif
# endif
#endif
(5)、编译 pcre 项目生成 pcre.dll 和 pcre.lib 文件。
(6)、新建静态库项目 posixpcre,添加源代码 pcreposix.c ,编译项目生成 posixpcre.lib。
(7)、编译 pcre 库完成。
 
build zlib 库:
打开项目文件 contril\vstudio\vc10\zlibvc.sln 直接编译。
 
3、下载 glib 的 source codes,然后打开项目文件 build\win32\vs12\glib.sln,为项目配置头文件目录和库目录,最后进行编译。
 
附上源码路径:https://github.com/panliang505/glib.git

转载于:https://www.cnblogs.com/divels/p/6636965.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
glib-2.58.0-win64-vs2017-v141-sdk10.0.17134.12 csdn-tags: glib-2.58.0 x64 vs2017v141 sdk17134 glib-2.58.0及其依赖包: bzip2-1.0.6-win64-vc141.zip glib-2.58.0-win64-vc141.zip libiconv-1.15-win64-vc141.zip libintl-0.19.8.1-win64-vc141.zip pcre-8.42-win64-vc141.zip zlib1-1.2.11-win64-vc141.zip 其中: glib依赖 libintl pcre zlib intl依赖 libiconv pcre依赖 bzip2 zlib glib的编译方法: 1,准备工具:msvc2017,python3,python需要安装 meson 和 ninja,直接pip install即可。 2,准备glibglib需要dirent的支持,否则在编译时会提示无法解析外部符号的错误。解决方法为: 将根目录\build\win32\dirent目录下的二个C文件和一个H文件拷贝到根目录\glib目录下。 3,修改根目录\glib目录下的meson.build文件,字符全是英文半角: glib_sub_headers = files处添加: glib_sub_headers = files( 'dirent.h', glib_sources = files处添加: glib_sources = files( 'dirent.c', 'wdirent.c', 打开vs2017的:适用于 VS 2017的 X64 本机工具命令提示: 或者 call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" amd64 假设python安装在D:\platform\python3 则,Scripts目录一定要添加,否则meson.py会找不到: set PYTHONPATH=D:\platform\python3 set PATH=%PATH%;%PYTHONPATH%;%PYTHONPATH%\Scripts\ 然后,创建编译目录,meson用一个新的目录编译源码: mkdir glib-2.58.0-win64-vc141 cd glib-2.58.0-win64-vc141 meson.py ..\glib-2.58.0 --prefix=D:\platform\glib --buildtype=minsize ninja ninja install 就可以完美编译。 欢迎朋友们下载使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值