当前位置: 首页 > news >正文

金币交易网站开发/电商网站建设公司哪家好

金币交易网站开发,电商网站建设公司哪家好,中国最好的网站建设,汕头网站建设制作厂家发现问题C的静态库(*.a文件)就是一个压缩包,把所有 *.o 文件打包在里面。所以我想尝试做的事很简单:就是把静态库里的 *.o 文件都解压出来,然后在用这些 *.o 文件链接合并为一个动态库。我直接双击解压的,这样就得到了一堆的 *.o …

发现问题

C++的静态库(*.a文件)就是一个压缩包,把所有 *.o 文件打包在里面。

所以我想尝试做的事很简单:就是把静态库里的 *.o 文件都解压出来,然后在用这些 *.o 文件链接合并为一个动态库。我直接双击解压的,这样就得到了一堆的 *.o 文件。然后我执行了生成动态库的命令,类似如下:

c++ -g -dynamiclib -Wl,-headerpad_max_install_names -o libtest.dylib /usr/lib/libexpat.dylib /usr/lib/libz.dylib -framework ApplicationServices -framework OpenGL *.o

结果一直报错:

ld: file not found: raw_codec.SkRawAdapterCodec.o

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

解决方法

报错说找不到这个raw_codec.SkRawAdapterCodec.o文件,但是我确定文件是存在的。根据提示加了个-v参数,打印了详细的列表,发现这个raw_codec.SkRawAdapterCodec.o是第一个要加载的文件,说明可能所有文件都没被命令行识别。

我接着测试了其他的命令,单独对这一个raw_codec.SkRawAdapterCodec.o进行链接,不管什么参数都提示ld: file not found 的错误。看来就是文件无法被加载。然后想着去项目原始目录里找被打包为静态库前的这个 *.o 文件,一测试居然成功了没报错!说明是从静态库里解压出来的 *.o 文件有问题。于是二进制对比两个文件,发现MD5是完全一致的,也就是说文件内容是没问题的。那么就是权限问题咯?把两个文件放到同一个目录下,用ls -l命令查看了一下,输出如下信息:

-rw-r--r-- 1 dom staff 734032 5 25 11:35 raw_codec.SkRawAdapterCodec2.o

-rw-r--r--@ 1 dom staff 734032 5 25 10:25 raw_codec.SkRawAdapterCodec.o

下面那个文件是出问题的文件,权限里居然出现了一个@,谷歌了一下,说这个是mac平台上的扩展属性标识,说明除了标准权限外还有其他的。可以用ls -@l命令查看具体是什么扩展属性,输出如下:

-rw-r--r-- 1 dom staff 734032 5 25 11:35 raw_codec.SkRawAdapterCodec2.o

-rw-r--r--@ 1 dom staff 734032 5 25 10:25 raw_codec.SkRawAdapterCodec.o

com.apple.quarantine 29

这个com.apple.quarantine是什么鬼呢?继续搜索,原来是我们经常看到的那个提示:「”xxx”是从互联网下载的应用程序。您确定要打开它吗?」。算是一种安全限制,在Mac OSX 10.5开始引入了这个属性,如果从浏览器下载,或使用系统的解压命令比如tar,zip等,都会自动给文件加上这个属性,导致第一打开需要弹窗允许。所以我们一直无法加载到这个raw_codec.SkRawAdapterCodec.o是因为它含有com.apple.quarantine扩展属性。

要删除这个属性可以使用命令:

xattr -d com.apple.quarantine 文件名

或者直接删除整个文件夹里所有文件的这个属性:

xattr -dr com.apple.quarantine 文件夹名

测试了一下,删除com.apple.quarantine属性后果然好了。其实更规范的解压静态库的方式是使用ar -x命令,使用ar命令就不会自动添加com.apple.quarantine属性了。可以批量解压一个文件夹下的所有 *.a 文件,在指定目录下执行这条命令即可:

ls *.a | xargs -n1 ar -x

最后测试了一下之前的命令,成功生成了动态库,大功告成~

总结

以上就是关于这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

http://www.lbrq.cn/news/1107307.html

相关文章:

  • 网站做中秋专题怎么弄/谷歌关键词搜索排名
  • 门户网站开发解决方案/临沂seo代理商
  • 网站建设预算方案模板/网站建设策划
  • 北京网络公司哪家好/重庆百度推广关键词优化
  • 达州做网站/seo外包公司费用
  • 南昌网站设计网站开发/营销型网站制作成都
  • 茶企业网站/市场调研
  • 网站设计公司成都/企业网站seo贵不贵
  • 整合营销沟通/郑州seo服务技术
  • 营销网站域名设计/网络推广的概念
  • 企业手机网站建设推广/网站查询域名ip
  • 网站seo优化实例/杭州seo工作室
  • 常州免费网站建设/怎么建网址
  • 58同城二手房/seo快速排名站外流量推广
  • 哪些软件可以制作视频/武汉网站搜索引擎优化
  • 南宁手机网站开发策划/发帖推广百度首页
  • 加强理想信念教育主题网站建设/电商运营
  • 如何将网站地图提交给百度/企业公司网站建设
  • 现在还有用dw做网站/网站关键词优化
  • 网站开发属于/中国十大搜索引擎网站
  • 富阳网站建设/seo网站内容优化
  • 做网站之前要安装什么/灰色行业关键词推广
  • 做网站用哪个office/网店推广常用的方法
  • 东莞外贸模板建站/网络营销师资格证报名
  • 网站建设华企/怎样弄一个自己的平台
  • 威海北京网站建设/个人怎么做免费百度推广
  • 日照网站推广/最简短的培训心得
  • 凡科做的是网站吗/上海已经开始二次感染了
  • 国家超算互联网公司排名/关键词优化需要从哪些方面开展?
  • 如何做网站搭桥链接/网络广告策划的步骤
  • 强化学习入门-免模型预测
  • [每日随题11] 贪心 - 数学 - 区间DP
  • 小明记账簿焕新记:从单色到多彩的主题进化之路
  • 华为仓颉编程语言语法简介与示例
  • Mybatis学习之简介(一)
  • ChatGPT Agent深度解析:告别单纯问答,一个指令搞定复杂任务?