zoukankan      html  css  js  c++  java
  • 在xcode中设置include和lib路径

    最近刚刚开始玩xcode,对着教程学编程时很少要动到项目设置,但昨天晚上想使用freetype验证上篇博文的问题,就需要设置include和lib路径了。

    首先我下了freetype的源码,并在本地编译安装:

    $ cd freetype-2.6
    $ ./configuration
    $ make check
    $ make install

    很顺利。

    直接新建一个命令行的project,贴入代码 - 编译,就会得到如下编译错误:

    找不到头文件,应该是没有把ft2build.h所在的路径添加到include path中来,找到代码的Build Settings,找到Header Search Paths,把freetype相关头文件所在路径加进去,如下:

    很显然下面那行Library Search Paths也是需要的:

    再次编译,发现还是有链接错误:

    Undefined symbols for architecture x86_64:
      "_FT_Init_FreeType", referenced from:
          _main in main.o
      "_FT_New_Face", referenced from:
          _main in main.o
      "_FT_Set_Pixel_Sizes", referenced from:
          _main in main.o
    ld: symbol(s) not found for architecture x86_64
    clang: error: linker command failed with exit code 1 (use -v to see invocation)

    一定是没有指定freetype的lib文件。这个设置和VisualStudio下的不太一样,需要直接设置链接参数。我去/usr/local/lib下找到多个和freetype相关的文件:

    libfreetype.6.dylib
    libfreetype.a
    libfreetype.dylib
    libfreetype.la

    经过反复试验,应该填-lfreetype:

    写几行使用freetype的代码,终于可以编过了!

    #import <Foundation/Foundation.h>
    #import <ft2build.h>
    #include FT_FREETYPE_H
    
    int main(int argc, const char * argv[]) {
        @autoreleasepool {
            
            FT_Library  library;
            FT_Face     face;
            int error = 0;
            
            if (FT_Init_FreeType(&library)){
                printf("1\n");
                return 0; /* leave it uninitialized */
            }
            
            error = FT_New_Face( library, "/System/Library/Fonts/Apple Color Emoji.ttf", 0, &face );
            if(error){
                printf("2:error=%d\n", error);
                return 0;
            }
            
            error = FT_Set_Pixel_Sizes(face, 0, 16);
            if (error) {
                printf("3:error=%d\n", error);
            }
            
            // insert code here...
            NSLog(@"Hello, World!");
        }
        return 0;
    }
  • 相关阅读:
    CF321B Solution
    CF722D Solution
    CF729E Solution
    CF1447E Solution
    CF962F Solution
    DropDownList绑定数据
    连接数据库
    jqm随记的东西
    正则表达式过滤超链接内容(.net)
    linq lambda操作list的例子
  • 原文地址:https://www.cnblogs.com/palance/p/4809978.html
Copyright © 2011-2022 走看看