zoukankan      html  css  js  c++  java
  • 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库。运行效果如下:

  • 相关阅读:
    php多态
    ssl certificate problem: self signed certificate in certificate chain
    test plugin
    open specific port on ubuntu
    junit vs testng
    jersey rest service
    toast master
    use curl to test java webservice
    update folder access
    elk
  • 原文地址:https://www.cnblogs.com/jpeg/p/make-agg-via-gcc.html
Copyright © 2011-2022 走看看