如何选择做网站公司,信誉好的苏州网站建设,php网站商城源码,做网站软件的公司Cmake生成的Xcode工程相对路径与绝对路径的问题 文章目录 Cmake生成的Xcode工程相对路径与绝对路径的问题前言修改.pbxproj文件验证工程小结 前言
由于Cmake的跨平台的自动化构建的方便性以及他广泛应用于编译过程的管理#xff0c;在开发过程中难免用到Cmake。我也使用Cmake…Cmake生成的Xcode工程相对路径与绝对路径的问题 文章目录 Cmake生成的Xcode工程相对路径与绝对路径的问题前言修改.pbxproj文件验证工程小结 前言
由于Cmake的跨平台的自动化构建的方便性以及他广泛应用于编译过程的管理在开发过程中难免用到Cmake。我也使用Cmake针对相关静态库进行编译得到在iOS下使用的静态库但由于Cmake生成的相关工程是绝对路径的因此在合作开发过程中别人不能够很方便的进行共同开发。我针对Cmake生成相对路径的工程又不熟悉因此只能针对生成的Xcode工程进行从绝对路径到相对路径的改造因此本文的操作方式可能不那么符合正常的工作流程 并且在相关的类似文章中也有人提到Cmake生成的VScode工程是绝对路径并且是有意为之的相关文章CMake生成的vs的工程文件为何采用的是绝对路径
使用的Cmake命令生成Xcode工程Cmake . -G Xcode
修改.pbxproj文件
project.pbxproj文件是一个基于XML格式的文本文件它存储了Xcode工程中几乎所有的配置信息包括目标Targets、源文件Source Files、资源文件Resources、构建设置Build Settings等。在Xcode中每当你对项目进行更改如添加、删除或修改文件更改构建设置等这些更改都会反映到project.pbxproj文件中。 参考的相关文章Xcode工程解析深入了解project.pbxproj文件
.pbxproj文件也是Xcode中的Build Settings, General等设置的总和一般来说在Xcode中通过GUI来修改项目配置.pbxproj也会同步更新但某些情况却不会因此可能需要打开.pbxproj来修改。本人操作可能不规范 修改.pbxproj文件时需要注意备份以免关键数据丢失。 Note应当尝试首先修改build settings中的内容如果能够起作用请不要修改.pbxproj文件。
修改的原则根据自己通过Xcode建立的工程的.pbxproj文件进行对比修改为相对路径
其中需要用到的配置项有 $(PROJECT_DIR) 和 $(SRCROOT)它们分别表示项目根目录和项目目录。二者的区别 ( S R C R O O T ) 和 (SRCROOT)和 (SRCROOT)和(PROJECT_DIR)和 ( i n h e r i t e d ) 和 (inherited)和 (inherited)和{PODS_ROOT} 如果不确定二者的路径到底是什么可以通过以下命令来查看
xcodebuild -project projectName.xcodeproj -showBuildSettings | grep SRCROOT
xcodebuild -project projectName.xcodeproj -showBuildSettings | grep PROJECT_DIR
打开.pbxproj文件可以搜索user等绝对路径中经常有的字段这些就是要修改的绝对路径了。 2. 将projectDirPatrh的路径替换为如下内容
projectDirPath ; //代表将项目根目录的路径替换为当前目录
将绝对路径中的替换成当前工程的$(PROJECT_DIR)示例如下
//未修改之前的代码已脱敏
HEADER_SEARCH_PATHS (/Users/xxxx/src/main,/Users/xxxx/src/main/xx,/Users/xxxx/src/main/xx,/Users/xxxx/src/main/xxxx,/Users/xxxx/src/main/xxx,/Users/xxxx/src/main/xxxx,/Users/xxxx/src/main/xxxxxxx,$(inherited),);//修改为
HEADER_SEARCH_PATHS ($(PROJECT_DIR)/src/main,$(PROJECT_DIR)/src/main/xx,$(PROJECT_DIR)/src/main/xx,$(PROJECT_DIR)/src/main/xxxx,$(PROJECT_DIR)/src/main/xxx,$(PROJECT_DIR)/src/main/xxxx,$(PROJECT_DIR)/src/main/xxxxxxx,$(inherited),);类似的均这样修改. Note: 在.pbxproj文件中使用$(PROJECT_DIR)要在路径前后加上双引号上述代码已体现。
验证工程
在上述进行修改时应当时不时的点击.pbxproj文件看看是否能成功打开和索引工程中的文件如果出现工程已损毁或者打开后工程文件索引不到全部标红说明刚刚修改的有错误。 这样防止在修改完后发现工程无法运行却无法定位问题位置。 修改完成后可以上传到代码仓库中再在电脑上另外一个位置clone下来上传到代码仓库中应当忽略工程的中间文件打开工程文件构建看是否成功以及设置里的是否都是相对路径。
小结
本文主要讲述了在Cmake生成Xcode工程后Xcode工程均为绝对路径的问题。给出了简单的修改为相对路径的方法以及操作步骤。本文仅供参考面对您的工程时请谨慎操作做好备份。 如果您觉得我写的不错请记得给我一个免费的赞