zoukankan      html  css  js  c++  java
  • MAC/Linux编程环境经验笔记(持续汇总)

    1、XCode小经验

    工程路径设置(Search Paths)

      Header Search Paths:$(SRCROOT)/include

      Library Search Paths:$(SRCROOT)/lib

      $(SRCROOT)宏和$(PROJECT_DIR)宏都指xxx.xcodeproj所在的目录。

    工程中引入了第三方库时,编译报错提示找不到系统函数定义?

      把工程的 "Build Setting" 中的 "Always Search User Paths" 改成 "No",否则编译器就会优先搜索第三方库中的同名系统函数,导致编译出错!

    编译出来的静态库特别大

      这个问题是丁强帮我搞定的,要在工程的 "Build Setting" 中的 "Generate Debug Symbols" 设置为 "No",然后把 "Strip Debug Symbols During Copy" 设置为 "Yes",这样我原来生成48MB的.a静态库变成了4.6MB,很好!

    如何分析静态库的打包内容?

      我们工程的产出是一个静态库包,如果在使用时链接出错,那么很有可能是某个包没有打进去。由于iOS静态库还需要区分不用的CPU架构模式,所以也要特别的注意下如armv7、armv7s、arm64等等,下面几个命令可以帮助分析:

    // 将静态库由“fat file”抽取成“thin file”
    lipo libuniplayer_sdk_d.a -thin armv7 -output libuniplayer_sdk_d_armv7.a
    
    // 列出打包的库清单
    ar -vt libuniplayer_sdk_d_armv7.a 

    // 删除某个链接模块
    ar -d libFreetype2.a smooth.a
    // 将静态库解包成*.a文件 ar -x libuniplayer_sdk_d_armv7.a  // 查看某个文件是否包含某个函数实现体 nm 文件名 | grep 函数名 // 查看某个文件支持的架构 lipo -info ***.a

     2、命令行

    # 在指定路径查找包含指定内容的文件列表
    find . -name "*.xml" | xargs grep "By adjusting" -l
    # 查看Mac/Linux依赖库
    objdump -x *.so | grep NEEDED
  • 相关阅读:
    String 方法
    异常处理
    数组长度改变方法
    对象
    重载(函数)
    函数
    java基础(死循环退出选项)
    cookie的封装,获取,删除
    事件监听的理解
    JS少数兼容
  • 原文地址:https://www.cnblogs.com/kuliuheng/p/5631393.html
Copyright © 2011-2022 走看看