一、问题阐述:
首先我编译了两个静态库,然后调用这两个静态库,如果生成动态库就能正常调用,但是如果生成可执行程序编译时就会出问题。
二、Makefile文档
1、静态库(libutility.a):
2、调用libutility.a生成动态库(TaskClient.so):
3、调用libutility.a可执行文件(TaskClient.exe)
三、编译结果及错误提示
1、调用libutility.a生成动态库没什么问题,调用libutility.a可执行文件编译不过,错误提示如下:
2、错误分析:应该是我的Makefile写的有问题,求各位大佬指教。
根据报错的信息,估计.a没有编译进去提示缺少的那几个cpp文件
nm libutility.a grep 一下缺少哪些定义有吗?
看起来没缺
另外,我如果编译成动态库,然后再用一个test程序去调用那个动态库就没有报错
@水云间月掌柜: 静态连接和动态连接是有区别的。
动态库:如果你的test程序没有上面的这些类,即使不定义连接等也没问题
静态库:这个就需要有定义