现在VS已经更新到VS2017甚至更高版本,但是为了兼容公司代码所以使用VS2010.
VS版本与VC版本对应关系
Visual Studio 6 : vc6
Visual Studio 2003 : vc7
Visual Studio 2005 : vc8
Visual Studio 2008 : vc9
Visual Studio 2010 : vc10
Visual Studio 2012 : vc11
Visual Studio 2013 : vc12
Visual Studio 2015 : vc14
Visual Studio 2017 : vc15
---------------------
作者:yefcion
来源:CSDN
原文:https://blog.csdn.net/yefcion/article/details/81067030
版权声明:本文为博主原创文章,转载请附上博文链接!
opencv 2.4.10 == vc10、vc11、vc12
opencv 2.4.13 == vc11、vc12
opencv 3.4.0 == vc14、vc15
opencv 3.4.1 == vc14、vc15
所以本文中VS2010+Opencv2.4.10配置
opencv下载地址:https://opencv.org/releases.html
关于opencv+vs2010配置,可以参考:OpenCV+VS2010配置,这里不再详细讲解。
本文主要想讲讲,如何基于查找小工具FindEverything修改,编写代码生成lib文件,这样既省时又不容易出错。
在【查找】按钮点击事件方法中继续添加代码,解析路径中的文件名并保存到txt文件中,在
D:\Program Files (x86)\opencv\build\x86\vc10\lib\文件夹下面查找d.lib字段,
解析出.lib文件名后,去掉“.”前面的d就得到了release版本文件:
void CFindEverythingDlg::OnBnClickedButton2()
{
// TODO: Add your control notification handler code here
MyCountFile m_CountFile;
vector<string> mvfiles,mvPaths,mvfiles1;
CString findstr;
GetDlgItem(IDC_EDIT2)->GetWindowTextW(findstr);
m_CountFile.GetAndPrintFileNames(StringAbout::toString(m_path),mvPaths,StringAbout::toString(findstr));
for (int i=0;i<mvPaths.size();i++)
{
string path=mvPaths[i];
string mfile=StringAbout::GetFileFromPathString(path);
mvfiles.push_back(mfile);
int pos=mfile.find(".");
string pre,post,mfile1;
pre=mfile.substr(0,pos-1);
post=mfile.substr(pos,mfile.length());
mfile1=pre+post;
mvfiles1.push_back(mfile1);
}
char* fileList="nameList.txt";
ofstream ofn(fileList);
int size = mvfiles.size();
for (int i = 0; i < size; i++) {
ofn << mvfiles[i] << endl;
}
ofn.close();
char* libList="libList.txt";
ofstream ofn1(libList);
int size1 = mvfiles1.size();
for (int i = 0; i < size1; i++) {
ofn1<< mvfiles1[i] << endl;
}
ofn1.close();
}
代码中涉及的StringAbout::函数,如有不理解,可以参考:string与Cstring字符串类型转换和其他操作总结
生成的文件名如下: