iOS中关于静态库路径无法找到问题的解决

1.递归删除指定目录下的 .git、.svn 文件

find . -name .git | xargs rm -fr

find . -name .svn | xargs rm -rf

第一条倒还不常用,因为用 git 做版本管理的时候,

只在根目录下生成一个 .git 目录,删掉这一个就行了~

因此,删除 .git 字需要 rm -rf .git 命令就够了。

第二条才是真的,svn 做版本管理的时候,受管理的每个目录下面都会有一个 .svn 隐藏目录。

因此,如果要去掉 svn 文件的话,则上面的第二条命令乃不二之选~

2.Versions for Mac 忽略文件设置

一、打开配置文件mvim ~/.subversion/config

二、找到 global-ignores 一行,去掉注释,编辑成:

global-ignores = build *~.nib *.so *.pbxuser *.mode(在此添加呢要忽略的文件后缀)

三、找到enable-auto-props = yes把注释去掉

(让立即生效?这条没有试过,当时按第二条改了以后发现还是没有反应)

3.ld: library not found for -lcurl

XCode 里面有时候会报出如下的错误(今天我就遇到了一遭):

clang: warning: argument unused during compilation: '-websockets'

ld: library not found for -lcurl

clang: error: linker command failed with exit code 1 (use -v to see invocation)

解决方案:

第一时间点击 XCode 工程文件,在 Build Phases 中查看 “Link binary With Libraries

如果不出所料,你应该能发现有一到数个的条目是用红色字体来显示的。

什么意思?被工程引用的这些文件,其物理文件已经不处于之前所记录的地方了。

怎么办?右键点击红色条目,选择 “Reveal in Project Navigator”,

此时大抵能在左侧栏中定位到缺失文件所在的路径,接下来就好办了,找到缺失的文件,挪回它应该待的地方。

4.ld: library not found for -lcurl

现象:在编译工程时,有时会遇到类似“ld: library not found for -l…” 的错误提示。

原因:通常这是由于工程在编译时找不到需要的链接库而导致的。

解决方法:

一般可以通过如下的方法解决,在工程的 Target 中选中要执行编译的某个target,

然后 “get info”,打开 Build 设置页面,在 “Library Search Path” 中添加缺失链接库的所在文件夹的路径即可。

5.安装 Versions for Mac 以后,全局忽略的列表中默认是包含 *.a 文件类型的

这样可能会导致一些问题,就拿 cocosd-x 库来说吧,

cocos2d-x 创建的模板工程中就包含着三个 .a 类型的文件:libcurl.alibwebp.alibwebsockets.a

如果用 Versions 来做版本管理的话,这些 .a 文件就可能被跳过。

当其他人从 svn 服务器 checkout 该工程进行编译的时候,就可能会出现上一点中所描述的情形。

6.svn 默认 ignore(忽略)一些文件,例如 “*.o”,怎么取消这种默认忽略让文件能正常提交呢?

切换到指定目录,使用 “svn add * --force --no-ignore” 命令即可。

其中,“--no-ignore” 是取消忽略,“* --force” 是添加当前目录及所有子目录下的所有文件。

7.受版本控制的工程,对其做粘贴目录的操作须谨慎!

如果粘贴进去的某个目录中也包含了 .svn 隐藏目录,就可能会导致目标工程的版本控制出错,

直观的表现就是某目录下明明存在一些文件,但在 Versions 中却看不到,日常的 svn 操作也可能会受到一定的影响。

怎么解决这个问题?在控制台下切换到出问题的目录,使用 “find . -name .svn | xargs rm -rf” 命令即可。

你可能感兴趣的:(iOS中关于静态库路径无法找到问题的解决)