库名称包含空格时,如何合并多个静态库? -问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

库名称包含空格时,如何合并多个静态库?

2020-01-06 15:18:53 216 1

我正在开发各种风格的Linux,并且需要组合多个静态库,例如

foo1.a foo bar.a foo2.a 放入一个单一的组合静态库中(请注意,第二个文件的名称中有一个空格)。

我看过stackoverflow文章,这些文章解释了如何使用ar mri脚本执行此操作。建议创建一个名称如下的文件combine.ar:

CREATE comboLib.a
ADDLIB foo1.a
ADDLIB foo bar.a
ADDLIB foo2.a
VERBOSE
SAVE

END 然后使用命令ar -M < combine.ar。

但是,ar脚本语言将空格视为添加两个项目的一种方式,因此它将第二行视为添加库foo和库bar.a。

我没有运气尝试过以下

ADDLIB "foo bar.a"
ADDLIB foo\ bar.a
ADDLIB 'foo bar.a'

如何才能做到这一点?

取消 提交回答
全部回答(1)
  • 祖安文状元
    2020-01-06 15:19:06

    我不知道是否可以在MRI脚本中使用带空格的文件名。您可以将库文件重命名或符号链接为foo bar.a没有空格的名称,这是一种简单的解决方法。

    如果您不坚持使用MRI脚本,则可以使用一系列ar命令来执行此操作。

    以下脚本假定所有库文件都在同一目录中,并且临时目录与其他目录没有冲突。

    for lib in foo1.a 'foo bar.a' foo2.a
    do
      rm -rf tmpdir   # make sure we do not have any existing file
      mkdir tmpdir    # place to extract members
      cd tmpdir
      # x = extract all memebers, o = keep original file date
      ar xo ../"$lib"
      # r = add/replace member, c = create archive without warning
      ar rc ../comboLib.a *
    done
    rm -rf tmpdir     # clean up
    
    

    编辑:由于现代系统不需要ranlib,我s从ar r命令中删除了修饰符。

    0 0
相关问答

1

回答

财务托管关系下如何知道每个子账号各自花了多少钱?

2022-09-21 18:19:01 29浏览量 回答数 1

1

回答

如何在日志中搜索包含空格的关键字?

2020-03-26 23:14:21 517浏览量 回答数 1

1

回答

织梦.htaccess 文件 tag.php?/1/ 如何静态化跳转 tag/1.html .htaccess 如何写?

2019-01-09 21:48:33 1662浏览量 回答数 1

2

回答

负载均衡SLB如何配置监听多个域名

2017-08-18 09:09:40 6123浏览量 回答数 2

4

回答

一个云云虚拟机多个域名

2017-07-25 15:58:19 2191浏览量 回答数 4

1

回答

WordPress搬家不换域名图文教程(从弹性Web托管→虚拟主机)

2017-04-20 22:47:48 3596浏览量 回答数 1

1

回答

同一个网站名能备案多个域名吗?

2016-06-30 08:06:44 2436浏览量 回答数 1

2

回答

弹性Web托管不让添加域名

2015-12-17 15:55:34 4293浏览量 回答数 2

2

回答

URL签名后%2B、%3D等特殊值会被转义

2015-12-02 20:43:29 6642浏览量 回答数 2

1

回答

WordPress搭建的网站如何设置邮箱smtp?

2015-06-10 02:04:24 3408浏览量 回答数 1
0
文章
1898
问答
问答排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载