Resolved Freetype2 Problems

Discussion in 'Mac Programming' started by Eudall, Jan 19, 2012.

  1. Eudall, Jan 19, 2012
    Last edited: Jan 20, 2012

    macrumors newbie

    Joined:
    Apr 26, 2011
    #1
    Hi All,

    I am currently looking at doing some work using the Freetype2 API. I downloaded the latest stable release (2.4.8) from http://freetype.sourceforge.net/index2.html. After the download I untared the bzip tarball and followed the instructions within docs/INSTALL.UNIX to install:

    Code:
       ./configure
       make -s
       sudo make -s install
    
    No errors were reported on the terminal, so I assumed everything was ok and wrote a simple test application following advice from the freetype2 tutorial (http://freetype.sourceforge.net/freetype2/docs/tutorial/step1.html). The application compiles cleanly, however it fails to link. Please see output below:

    Code:
    Undefined symbols for architecture x86_64:
      "_FT_Init_FreeType", referenced from:
          _ft_init in ccK9n142.o
    ld: symbol(s) not found for architecture x86_64
    collect2: ld returned 1 exit status
    
    I am compiling the application in the following way:
    Code:
       gcc -o ftTest ftTest.c -I/usr/local/include/freetype2 -I/usr/local/include
    
    I have had a look on Google for this problem, but was unable to find anything useful. I have tried adding '-m32' to the compiler options, per a discussion on StackOverflow, but that produced the same error, but stating architecture i386.

    For reference, I am using Mac OS X 10.7.2.

    Any suggestions would be greatly appreciated.

    Thanks
     
  2. macrumors 68030

    Joined:
    Oct 19, 2011
    Location:
    Switzerland
    #2
    Ok, I'm not really an expert, but when I compile C/C++ programs, my workflow is

    Code:
    gcc -c ftTest.c -o ftTest.o
    gcc ftTest.o -LIBRARIES -o ftTest
    
    replace -LIBRARIES with your above lib paths.
     
  3. thread starter macrumors newbie

    Joined:
    Apr 26, 2011
    #3
    Hi,

    Thanks for the fast response, the gcc line I am using provides the same result as yours, but you simply build objects and link these. I double checked using your suggestion, but this provides the same error.

    Thanks :)
     
  4. macrumors 65816

    jiminaus

    Joined:
    Dec 16, 2010
    Location:
    Sydney
    #4
    You've specified where to find the include files, that's good and is why you can compile. But you haven't told gcc to actually link to the freetype2 library. You'll need a -L option and -l (lowercase) option to successfully link. The -L option tells gcc where to find libraries. The -l option specifies a library to actually link against.

    Try this:
    Code:
    gcc -I/usr/local/include/freetype2 -I/usr/local/include -L/usr/local/lib -lfreetype -o ftTest ftTest.c
    
     
  5. thread starter macrumors newbie

    Joined:
    Apr 26, 2011
    #5
    Damn, I knew I had forgot something. Thanks :D
     

Share This Page