FreeType在VC6下面的lib编译


    近来学习了一下FreeType库,确实好用。不过遇到很多编译上的问题,发现网络上遇到同样问题的朋友很多,刚好把自己的这点小经验写一下,帮助一下刚开始学习FreeType库的同学。

 

    FreeType 是一个非常好的库,而且跨平台,并且能够自定义组件的方式选择性的编译,所以就特别灵活。但是这灵活也是有代价的,那就是,编译的时候要注意的事情就很多,才接触的时候,往往很不习惯。


    FreeType的目录下面,其实已经包含了很多直接可以编译的工程文件和Make文件,我很懒,直接用工程编译。发现win32下面的vc 2005工程能够很好的编译出lib,但是vc 6的却有问题。我用的是2.3.5。


    其实,vc6的也是可以的,不过项目文件里面的数据的换行时Unix/Linux下面的换行,vc6这个老IDE不支持,所以,必须你自己手动的改一下换行方式,自己用记事本或者UtralEdit编辑一下吧,好了,现在vc6的可以编译了,但是警告一堆,这些警告是不可忽略的,因为这些问题也会使得编译出来的lib不可使用。

    这里的警告是:warning C4273: 'XXXXXXX' : inconsistent dll linkage.  dllexport assumed. 意思是dll的链接不一致。这个警告的原因是错误的给函数加上了__declspec(dllimport)修饰,查看头文件后得知,你需要加上 USE_FREETYPE2_STATIC 。然后,编译正确。


    还有一个问题程序使用lib时候发生的,编译器提示找不到符号,这些符号多数是 __imp__ 开头,比如__imp__FT_Init_FreeType,一开始实在想不通为什么明明是FT_Init_FreeType,为什么会变成__imp__FT_Init_FreeType。这里的解决办法是要在使用LIB的程序里面加入宏 USE_FREETYPE2_STATIC,编译器就会使用将FreeType的函数当做静态库中的函数使用。

 

    小结一下,在VC6下编译FreeType的静态库的要点

·将工程文件内的换行该成Windows下的换行方式,当然你也可以自己重新建立一个vc6的工程,这里要按照说明添加正确的头文件和源文件(不是所有文件都要加入到工程的).

·编译lib时候,以及使用lib,要使用 USE_FREETYPE2_STATIC 宏


    这里有很多名堂的,全部都集中在include/freetype/config目录下面,有空再研究。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值