标签:include lib 1.11 list C++ debug PCL release txt
目录
前言
完整的配库教程见:VisualStudio2019 配置点云库 PCL1.11.1
一、半自动获取
1、获取VTK的依赖项
打开PCL的安装目录找到VTK-lib
文件夹
选中路径并输入cmd
按下Enter
键出现如下界面
然后输入:dir/b/on >list.txt
并按下回车键
这时打开你对应路劲的目录,多了一个list.txt
文件,里面存了你这个文件夹里所有链接库名字。
打开list.txt
文件,删除cmake
、list.txt
两行并保存(注意不要留下空白行)
由于每一个Debug版本和Release版本的链接库是挨在一起的。写一个读取文档并对其分别保存就行了。
具体代码如下:(主要功能是读取一个txt文件,将其中奇数行和偶数行单独输出到新的txt文档。)
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
int main()
{
ifstream txtfile; // 打开读取的文件
ofstream release, debug;// 保存的文件
string line;
txtfile.open("list.txt", ios::in);
release.open("release附加依赖项.txt", ios::app);
debug.open("debug附加依赖项.txt", ios::app);
int index = 0; // 用于判断奇偶
while (!txtfile.eof()) // 若未到文件结束一直循环
{
getline(txtfile, line); // 一行一行读取
if (index % 2 == 0) // 判断除以2的余数,即为奇偶的判断
{
release << line << endl;
}
else
{
debug << line << endl;
}
index++;
}
//关闭文件
txtfile.close();
release.close();
debug.close();
return 0;
}
2、获取PCL的依赖项
打开PCL的安装目录找到lib
文件夹
选中路径并输入cmd
按下Enter
键出现如下界面
然后输入:dir/b/on >a_list.txt
并按下回车键
这时打开你对应路劲的目录,多了一个a_list.txt
文件,里面存了你这个文件夹里所有链接库名字。
打开a_list.txt
文件,删除a_list.txt
和pkgconfig
两行并保存(注意不要留下空白行)
由于每一个Debug版本和Release版本的链接库是挨在一起的。写一个读取文档并对其分别保存就行了。
具体代码如下:(主要功能是读取一个txt文件,将其中奇数行和偶数行单独输出到新的txt文档。)
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
int main()
{
ifstream txtfile; // 打开读取的文件
ofstream release, debug;// 保存的文件
string line;
txtfile.open("a_list.txt", ios::in);
release.open("pcl_release附加依赖项.txt", ios::app);
debug.open("pcl_debug附加依赖项.txt", ios::app);
int index = 0; // 用于判断奇偶
while (!txtfile.eof()) // 若未到文件结束一直循环
{
getline(txtfile, line); // 一行一行读取
if (index % 2 == 0) // 判断除以2的余数,即为奇偶的判断
{
release << line << endl;
}
else
{
debug << line << endl;
}
index++;
}
//关闭文件
txtfile.close();
release.close();
debug.close();
return 0;
}
将release附加依赖项.txt
中的内容复制粘贴进pcl_release附加依赖项.txt
即可获取Release版本的完整附加依赖项,Debug版本的获取方式也是如此。
二、自动获取
本代码适用于自动获取PCL1.11.1的附加依赖项,至于其他版本PCL的依赖项能否使用就不知道了。
#include <io.h>
#include <vector>
#include <string>
#include <fstream>
#include <iostream>
using namespace std;
#pragma region // 从文件夹中读取lib文件
vector<string>batchFetchingLib(string& folder_path)
{
string filename_suffix = "/*lib"; // lib文件的文件名后缀(.lib)
vector<string>files;
struct _finddata_t fileinfo;
intptr_t handle;
handle = _findfirst((folder_path + filename_suffix).data(), &fileinfo);
if (handle == -1)
{
printf("输入的路径有错误");
exit(-1);
}
else
{
files.push_back(fileinfo.name);
while (_findnext(handle, &fileinfo) == 0)
{
if (strcmp(fileinfo.name, ".") == 0 || strcmp(fileinfo.name, "..") == 0)
continue;
files.push_back(fileinfo.name);
}
}
_findclose(handle);
return files;
}
#pragma endregion
int main()
{
string pcl_lib_path("D://PCL 1.11.1//lib"); // 读取lib文件的路径
string vtk_lib_path("D://PCL 1.11.1//3rdParty//VTK//lib"); // 读取VTK-lib文件的路径
vector<string>PCL = batchFetchingLib(pcl_lib_path); // 获取lib文件名
vector<string>VTK = batchFetchingLib(vtk_lib_path); // 获取VTK-lib文件名
ofstream release, debug;// 保存的文件
release.open("PCL1.11.1_Release附加依赖项.txt", ios::app);
debug.open("PCL1.11.1_Debug附加依赖项.txt", ios::app);
for (size_t i = 0; i < PCL.size(); ++i)
{
(i % 2 == 0) ? release << PCL[i] << endl : debug << PCL[i] << endl;
}
for (size_t i = 0; i < VTK.size(); ++i)
{
(i % 2 != 0) ? release << VTK[i] << endl : debug << VTK[i] << endl;
}
release.close();
debug.close();
cout << "附加依赖项获取完毕!!!" << endl;
return 0;
}
标签:include,lib,1.11,list,C++,debug,PCL,release,txt 来源: https://blog.csdn.net/qq_36686437/article/details/121843580
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。