cmake 生成 (动态库、静态库)库文件问题

xwbnahan 2015-03-05 11:27:16
,请教各位朋友,我现在有一个工程project ,目录结构如上图,下面有三个目录模块 base、file、util;我现在想把这个工程编译成一个动态库或者静态库;
我现在的做法是:
1、每个模块都编译成了一个 静态库 (libbase.a、libfile.a、libutil.a);
2、然后在project 目录下创建一个模块 test,里面只有一个test.cpp 文件(内容是空的);
3、然后让test模块去连接(libbase.a、libfile.a、libutil.a);
现在的问题是 test 模块也编译成了test.a 但是没有连接上其他三个库(libbase.a、libfile.a、libutil.a),请问各位怎么能把工程所有的静态库打包成一个?
...全文
862 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
赤色彗星 2015-11-19
  • 打赏
  • 举报
回复
引用 1 楼 zhao4zhong1 的回复:
建议在这个SaaS和开源的时代,直接提供源代码给客户,而不必费劲去包装各种库给客户。
看到你这回复我真想拍你一板砖!
Leaveye 2015-03-06
  • 打赏
  • 举报
回复
cmake 无法在库中链接其它库。 按你的目的,你只需要在根目录下维护一个 CMakeLists.txt 即可。
greex 2015-03-06
  • 打赏
  • 举报
回复
cmake是配置的,好像是一个txt文件。把此文件放在每个目录下就生成多个库,如果想生成一个库,把它移动到最上层即可。
caddor9100 2015-03-06
  • 打赏
  • 举报
回复
引用 2 楼 a30037338 的回复:
为什么要先把三个模块先编译成.a 文件, 编译成 .o 就很easy了。 假设A.a, B.a C.a 在test目录下 新建一个目录 mkdir lib cd lib //这三条命令, 把 .a 文件解压缩到当前文件夹下 ar x ../A.a ar x ../B.a ar x ../C.a //打包成一个新的 .a ar cr libABC.a *.o
引用 4 楼 Leaveye 的回复:
cmake 无法在库中链接其它库。 按你的目的,你只需要在根目录下维护一个 CMakeLists.txt 即可。
http://bbs.csdn.net/topics/390993236 高手帮忙解答个帖子
赵4老师 2015-03-05
  • 打赏
  • 举报
回复
建议在这个SaaS和开源的时代,直接提供源代码给客户,而不必费劲去包装各种库给客户。
此后三年 2015-03-05
  • 打赏
  • 举报
回复
为什么要先把三个模块先编译成.a 文件, 编译成 .o 就很easy了。 假设A.a, B.a C.a 在test目录下 新建一个目录 mkdir lib cd lib //这三条命令, 把 .a 文件解压缩到当前文件夹下 ar x ../A.a ar x ../B.a ar x ../C.a //打包成一个新的 .a ar cr libABC.a *.o

65,186

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧