当前位置:  开发笔记 > 前端 > 正文

如何编译Cairo for Visual C++ 2008(Express版)

如何解决《如何编译CairoforVisualC++2008(Express版)》经验,为你挑选了1个好方法。

大多数预编译的Windows二进制文件都是使用MSYS + gcc工具链制作的.它使用MSVCRT运行时,它与Visual C++ 2005/2008不兼容.

那么,如何只为Visual C++编写Cairo 1.6.4(或更高版本).包括依赖项(png,zlib,pixman).



1> akauppi..:

以下是使用Visual C++构建Cairo/Cairomm的说明.

需要:

Visual C++ 2008 Express SP1(现在包含SDK)

MSYS 1.0

要使用VC++命令行工具,需要运行批处理文件"vcvars32.bat".

    C:\Program Files\Microsoft Visual Studio 9.0\Common7\Tools\vcvars32.bat

的ZLib

从http://www.zlib.net/下载(并提取)zlib123.zip

    cd zlib123
    nmake /f win32/Makefile.msc

    dir
        # zlib.lib is the static library
        #
        # zdll.lib is the import library for zlib1.dll
        # zlib1.dll is the shared library

的libpng

从http://www.libpng.org/pub/png/libpng.html下载(并摘录)lpng1231.zip

VC++ 9.0编译器提供了"这可能是不安全的"警告.别理他们; 这是MS安全恐慌(代码很好).

    cd lpng1231\lpng1231        # for some reason this is two stories deep

    nmake /f ../../lpng1231.nmake ZLIB_PATH=../zlib123

    dir
        # libpng.lib is the static library
        #
        # dll is not being created

Pixman

Pixman是开罗的一部分,但是单独下载.

从http://www.cairographics.org/releases/下载(并提取)pixman-0.12.0.tar.gz

使用MSYS通过'tar -xvzf pixman*.tar.gz'解压缩

Pixman和Cairo都有用于Visual C++命令行编译器(cl)的Makefile,但它们使用Gnu makefile和类Unix工具(sed等).这意味着我们必须在MSYS中运行make.

在启用VC++命令行工具的情况下打开命令提示符(尝试'cl /?').通过'C:\ MSYS\1.0\MSYS.BAT'将该命令提示符转换为MSYS提示符.

不要使用MSYS图标,因为那时你的提示现在将知道VC++.您无法从MSYS运行.bat文件.

试试VC++工具从这里开始工作:'cl - ?'

尝试Gnu make也有效:'make -v'.

凉.

    cd     (use /d/... instead of D:)
    cd pixman-0.12.0/pixman
    make -f Makefile.win32

默认为MMX和SSE2优化,需要新的x86处理器(Pentium 4或Pentium M或更高版本:http://fi.wikipedia.org/wiki/SSE2)

有一些警告,但似乎成功了.

    ls release
        # pixman-1.lib  (static lib required by Cairo)

留在VC++ spiced MSYS提示符下也可以编译Cairo.

开罗

从http://www.cairographics.org/releases/下载(并摘录)cairo-1.6.4.tar.gz

    cd 
    cd cairo-1.6.4

Makefile.win32在这里几乎是好的,但是有硬连线的Pixman路径.

使用修改后的'Makefile-cairo.win32':

    make -f ../Makefile-cairo.win32 CFG=release \
            PIXMAN_PATH=../../pixman-0.12.0 \
            LIBPNG_PATH=../../lpng1231 \
            ZLIB_PATH=../../zlib123

(将所有内容写在一行上,忽略反斜杠)

它说"没有规则来制作'src/cairo-features.h'.使用手动编写的(在Cairo> 1.6.4中可能有一个'src/cairo-features-win32.h',您可以简单地重命名) :

    cp ../cairo-features.h src/

重试ma​​ke命令(向上箭头记住它).

    ls src/release
        #
        # cairo-static.lib

cairomm(C++ API)

从http://www.cairographics.org/releases/下载(并摘录)cairomm-1.6.4.tar.gz

有一个Visual C++ 2005项目,我们可以使用(通过开放和升级)2008年.

    cairomm-1.6.4\MSCV_Net2005\cairomm\cairomm.vcproj

需要完成的更改:

将活动配置更改为"发布"

Cairomm-1.0属性(带右键菜单)

        C++/General/Additional Include Directories: 
            ..\..\..\cairo-1.6.4\src    (append to existing)

        Linker/General/Additional library directories:
            ..\..\..\cairo-1.6.4\src\release
            ..\..\..\lpng1231\lpng1231
            ..\..\..\zlib123

        Linker/Input/Additional dependencies:   
            cairo-static.lib libpng.lib zlib.lib msimg32.lib

优化:快速FPU代码

            C++/Code generation/Floating point model
                Fast

右键单击'cairomm-1.0'和'build'.有一些警告.

    dir cairomm-1.6.4\MSVC_Net2005\cairomm\Release
        #
        # cairomm-1.0.lib
        # cairomm-1.0.dll
        # cairomm.def

推荐阅读
惬听风吟jyy_802
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有