gpt4 book ai didi

visual-studio-2008 - 如何为 Visual C++ 2008 (Express edition) 编译 Cairo

转载 作者:行者123 更新时间:2023-12-04 01:36:04 25 4
gpt4 key购买 nike

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

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

最佳答案

以下是使用 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

    目录
    # zlib.lib 是静态库
    #
    # zdll.lib 是 zlib1.dll 的导入库
    # zlib1.dll 是共享库

    压缩包

    http://www.libpng.org/pub/png/libpng.html 下载(并解压)lpng1231.zip

    VC++ 9.0 编译器给出了大量“这可能不安全”的警告。别理他们;
    这是 MS 安全 panic (代码很好)。

    cd lpng1231\lpng1231 # 出于某种原因,这是两层楼深

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

    目录
    # libpng.lib 是静态库
    #
    # dll 没有被创建

    像素人

    Pixman 是 Cairo 的一部分,但需要单独下载。

    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 (使用/d/... 而不是 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 发布
    # pixman-1.lib(开罗需要的静态库)

    留在 VC++ 调味 MSYS 提示中,也可以编译 Cairo。

    开罗

    http://www.cairographics.org/releases/ 下载(并解压)cairo-1.6.4.tar.gz

    光盘
    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/

    重试 make 命令(向上箭头记住它)。

    ls 源代码/发布
    #
    # cairo-static.lib

    cairomm (C++ API)

    http://www.cairographics.org/releases/ 下载(并解压)cairomm-1.6.4.tar.gz

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

    cairomm-1.6.4\MSCV_Net2005\cairomm\cairomm.vcproj

    需要做的改变:
  • 将事件配置更改为“发布”
  • Cairomm-1.0 属性(带右键菜单)

  • C++/General/Additional Include 目录:
    ..\..\..\cairo-1.6.4\src(附加到现有)

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

    链接器/输入/其他依赖项:
    cairo-static.lib libpng.lib zlib.lib msimg32.lib
  • 优化:快速FPU代码

  • C++/代码生成/浮点模型
    快速地

    右键单击“cairomm-1.0”和“build”。有一些警告。

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

    关于visual-studio-2008 - 如何为 Visual C++ 2008 (Express edition) 编译 Cairo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/85622/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com