安装libtorrent时提示我没有boost库,但是我明明有安装啊

Installer套件(切记不要安装那个半残品docker,安装过的必失败)选择entware模式按教程一步步来,没问题我的很顺利。7 Z8 ]4 |! z3 Y% K& t

}

通常来说在大项目里,用动态鏈接比静态链接体积要小缺点就是要带上一个crt库。windows现在又引入了manifest可以指定crt的版本号,这样对于向上兼容是个不错的方法

如果作为单獨的库发布,那么带上crt可能不太现实因为它们确实不小。所以需要用静态链接gcc静态连接很方便,只需要把相应的.a文件加入即可vc2010需要將/MDd改为/MTd。虽然是这样但如果使用了别人的库,可能它本身是/MDd的这就比较棘手了,这就是为什么有很多软件要带上msvcp100.dll、msvcr100.dll等的原因了这两個文件总共约1M左右。

/MTd还有能遇到的问题是LINK2001等符号重定义的问题下面是常见的几个会重定义的lib及其说明

这里编译器会提示你用/NODEFAULTLIB:来忽略特定嘚库。运气好的时候能work但通常是忽略了某个后影响另一个。目前有两种方法解决

1. 找出有依赖问题的文件单独编译(我没试过)

Boost中大部汾库只需包含头文件即可,除了下面几个

有些库对上面的有依赖比如asio依赖于system。在Windows上默认的安装方式(bjam.exe)并没有编译出静态库(Mac下有),这时要手工编译

VS会自动连接到相应的静态库

PS: 有些库即使静态连接,Debug版本也会依赖msvcp和msvcr(主要是些调试函数)编译为Release就没有了。

}

我要回帖

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信