首页新闻找找看学习计划

Linux下Makefile编辑问题

0
悬赏园豆:20 [已解决问题] 解决于 2019-06-18 12:01

一、问题阐述:
首先我编译了两个静态库,然后调用这两个静态库,如果生成动态库就能正常调用,但是如果生成可执行程序编译时就会出问题。

二、Makefile文档
1、静态库(libutility.a):

2、调用libutility.a生成动态库(TaskClient.so):

3、调用libutility.a可执行文件(TaskClient.exe)

三、编译结果及错误提示
1、调用libutility.a生成动态库没什么问题,调用libutility.a可执行文件编译不过,错误提示如下:
2、错误分析:应该是我的Makefile写的有问题,求各位大佬指教。

水云间月掌柜的主页 水云间月掌柜 | 初学一级 | 园豆:58
提问于:2019-05-30 13:55
< >
分享
最佳答案
0

根据报错的信息,估计.a没有编译进去提示缺少的那几个cpp文件
nm libutility.a grep 一下缺少哪些定义有吗?

收获园豆:20
2012 | 专家六级 |园豆:19146 | 2019-05-31 08:25

看起来没缺

水云间月掌柜 | 园豆:58 (初学一级) | 2019-05-31 08:58

另外,我如果编译成动态库,然后再用一个test程序去调用那个动态库就没有报错

水云间月掌柜 | 园豆:58 (初学一级) | 2019-05-31 09:02

@水云间月掌柜: 静态连接和动态连接是有区别的。
动态库:如果你的test程序没有上面的这些类,即使不定义连接等也没问题
静态库:这个就需要有定义

2012 | 园豆:19146 (专家六级) | 2019-06-02 09:14
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册