• Agg:Windows上GCC编译Agg


    本文记录用TDM64-GCC(MingGW的变种)编译Agg2.5的过程。操作系统win8.1 64位,编译器TDM64-gcc。

    首先,TDM64-GCC只提供了一套编译环境,还有一些posix命令没有提供,例如ls,rm等,简单的办法就是装Git,有一个选项,会提供这些工具。解压agg2.5,将Makefile.in.MINGW32_NT-5.1复制一份,重命名为Makefile.in.MINGW32_NT-6.1,然后,直接编译就可以过:

    cd agg-2.5
    make

    因为是64位编译器,编译后,后面的platform_support又不能编译了,所以最好加上-m32的编译选项。修改src/Makefile,在CXXFLAGS后加上-m32:

    CXXFLAGS= $(AGGCXXFLAGS) -I../include -L./ -m32

    重新编译一遍:

    cd agg-2.5
    make clean
    make

    这样编译后,src下会得到libagg.a,新建一个目录,把include拷贝进去,另外建一个lib目录,把libagg.a放进去。

    下面我们编译一个例子试试:

    拷贝examples下的bezier_div.cpp出来,以及src/platform_support/win32下的两个cpp文件出来,新建一个Makefile:

    OBJS = bezier_div.cpp agg_win32_bmp.cpp agg_platform_support.cpp
    
    CC = g++
    COMPILER_FLAGS = -w -m32
    LINKER_FLAGS = -lagg -lgdi32
    
    HEADERS = -I./agg/include
    LIBS = -L./agg/lib 
    
    OBJ_NAME = agg.exe
    
    all    :$(OBJS)
        $(CC) $(OBJS) $(COMPILER_FLAGS) $(HEADERS) $(LIBS) $(LINKER_FLAGS) -o $(OBJ_NAME)
    
    clean:
        rm -f *.o *.exe

    这里把platform_support作为自己工程的代码加进去编译,同时编译的时候,需要指定-m32选项编译为32位程序,并链接gdi32库。运行效果如下:

  • 相关阅读:
    mysql字符生命周期
    mysql5.6特殊字符问题
    电信网关-天翼网关-GPON-HS8145C设置桥接路由拨号认证
    linux-shell脚本高并发对文本url批量下载
    Kettle7.1在window启动报错
    微软的在线文档存储OneDrive使用帮助
    centos6.5搭建redmine3.4
    mysql基础拓扑图
    线上应用故障排查之一:高CPU占用
    线上服务CPU100%问题快速定位实战
  • 原文地址:https://www.cnblogs.com/jpeg/p/make-agg-via-gcc.html
Copyright © 2020-2023  润新知