您的位置:首页 > 其它

如何把多个lib文件合并在一个lib文件中

2013-11-12 08:44 357 查看
我们利用OpenCV编程的时候一般需要关联多个lib文件,如果发布程序,不仅需要发布我们自己生成的lib,还需要将这些lib一起带过去。那么有没有一种可以将这么多lib文件一起打包在一起的方法呢?

比如我的程序用到了这三个lib,

#pragma comment( lib, "opencv_core246d.lib" )

#pragma comment( lib, "opencv_highgui246d.lib" )

#pragma comment( lib, "opencv_imgproc246d.lib" )

我想合并为一个opencv.lib。

这里我们将利用lib.exe完成这个任务:

我的VS编程环境是vs2010,安装文件夹在C:\Program Files\Microsoft Visual Studio 10.0,如果你的版本不是2010请换成其他路径。

1. 在C:\Program Files\Microsoft Visual Studio 10.0\VC\bin 的文件夹中找到lib.exe,双击运行。

哎?缺少dll?没关系,将缺少的mspdb100.dll,mspdbcore.dll,mspdbsrv.exe,msobj100.dll 这四个文件从C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE这个文件夹中拷贝粘贴到刚才的bin文件夹中。现在点击运行lib.exe
就已经不报错了。

2. WIN+R快捷键打开“运行”,或者开始->运行,输入cmd打开命令行程序。我们需要利用cd命令进入到 C:\Program Files\Microsoft Visual Studio 10.0\VC\bin 这个文件夹中去,在输入cd C:\Program Files\Microsoft Visual Studio 10.0\VC\bin (如果怕输错的话也可以cd一级一级的进入,比如先cd C:\Program Files 然后 cd Microsoft
Visual Studio 10.0)。

3. 将我们需要合并的几个lib文件拷贝到这个bin文件夹中,为了方便起见,我把他们重命名为lib1.lib lib2.lib lib3.lib。

4. 在命令行中输入 lib.exe /out:opencv.lib lib1.lib lib2.lib lib3.lib

如果有想要添加的其他lib都可以添到后面,用空格隔开。

5. 点击回车,如果你拷贝的lib中有函数是重复定义的(是同样的函数,而不是重载),那么lib.exe会报warning。当时我用了两个一样的lib进行测试,不停的报错,差点把命令行程序关掉了,呵呵呵。

6. 运行结束在后,在bin文件夹中,当当当当!opencv.lib文件出现了!

大功告成!

2013-11-12

9:54:33
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: