滴水恩情 发表于 2024-7-29 09:30:42

VS C++ Project(项目)的工作目次设置

        如果只是简朴创建一个VS C++Project或者MFC Project,大概很多时间,只关心将Project放在硬盘的那个位置,与Project目次相关的的其他问题,并不引人注意,我们也不是十分在意。有时我们不得不进行工作目次方面的设置,如Project中须要用到OpenCV图像处置惩罚库;生成的可执行文件须要在当地磁盘中创建文件,或者须要打开当地·磁盘中的文件等。下面来探究VS C++ Project工作目次方面的话题。
        VS C++ Project的工作目次是Project属性的一部门,查看、修改、设置等都在目次项中进行。下面以用VS 2022 创建的DequeTest Project (对话框步伐)为例,演示目次属性的查看与设置。
        点击“项目”菜单,然后点击“DequeTest和属性"子菜单:
https://i-blog.csdnimg.cn/direct/829e982fab6d4cad87c62ff2957aee4c.png
        弹出DequeTest属性页,如下:
https://i-blog.csdnimg.cn/direct/cfa34f5aa3c84d33aac2f13feb1fa0a9.png
在上面的属性页的配置属性项下的常规项中可以看到:输出目次、中间目次两项与目次相关的内容。点击输出目次项后面的向下符号,即可想象展开,看到”编辑“与”浏览“两个选项:
https://i-blog.csdnimg.cn/direct/3fe4ca9f40844840b374519c6f47ebc6.png
点击”编辑“项,即可看到输出目次,如下:
https://i-blog.csdnimg.cn/direct/03822fb3ab9043fba249dd655bd5f2c7.png
输出目次中$(SolutionDir)$(Platform)\$(Configuration)\表现编译生成的文件(输出文件)放在Project地点目次下的平台款式录下的配置目次下,本步伐是在win10下用VS2022创建,因此平台名是X64,现在Project配置如下:
https://i-blog.csdnimg.cn/direct/86747817ea3b4c7b9250c04266e0cd47.png
配置目次名是:Debug
生成的文件路径如下:
https://i-blog.csdnimg.cn/direct/2b0633c76db149b99fe3d59e6233aae4.png
修改输出目次如下:
https://i-blog.csdnimg.cn/direct/24d84db1574243f1b89572e47c3880f0.png
重新生成解决方案:
https://i-blog.csdnimg.cn/direct/0ec44a9a1332457eb16a3d8b03cacb31.png
可以看到在D目次下生成了输出文件:
https://i-blog.csdnimg.cn/direct/6d1aa5ee06d54ea2ac6b1f8763b3abde.png
点击”浏览“选项,则是浏览选择输出目次,缺省是Project地点目次,如下:
https://i-blog.csdnimg.cn/direct/450132ce3bd149c7aab37a94136bae9b.png
同样中间目次也可修改,也有”编辑“与浏览两个选项,如下:
https://i-blog.csdnimg.cn/direct/9b46aca697e1464eb0702b196d1a50bc.png
在配置属性的高级选项中有一项有提到输出目次,如下:
https://i-blog.csdnimg.cn/direct/832bf7922e2342748ea24a2d51028e51.png
”将C++运行时复制到输出目次“,是什么意思?先不管它,其缺省值是否,将其改为是,如下:
https://i-blog.csdnimg.cn/direct/3616af97539949cbaa401764bc16a38d.png
重新生成,看下结果怎样。可以看到D目次下多了很多dll文件,如下:
https://i-blog.csdnimg.cn/direct/7aa0ae95499f4ef08c345298836fde28.png
        实际上是将VC++ runtime的1相关文件复制到了输出目次中。一般情况下,不须要将此项选为:”是“,如果的确须要VC运行库,可以在步伐文件打包时打包VC运行库,在步伐安装时,让其安装VC运行库。
点击配置属性相下的”调试“项,可以看到工作目次一栏,如下:
https://i-blog.csdnimg.cn/direct/ee34bc7eb41e4a3bb9f741f18a388807.png
将其展开,同样也有”编辑“与”浏览“两个选项,可用这两个选项对其进行修改。
https://i-blog.csdnimg.cn/direct/2677fc3380a44e57b41ecb9f61495b25.png
点击编辑,在弹出的工作目次对话框中可以看到当前工作目次:
https://i-blog.csdnimg.cn/direct/1db2b75a0b9845fa9b543375fb70cf6f.png
也可在这个对话框中对工作目次进行修改。这里不对其修改。
        展开”VC++目次“项,可以看到很多与目次有关得到项目:
https://i-blog.csdnimg.cn/direct/ec628083ecc5476b8ab3d5712f92c01f.png
这些目次项,都是可以编辑或者配置的。其编辑或配置需依实际需求进行。一般情况下不要随意修改,否则大概否导致出错。比方本示例项目须要用到OpenCV,就须要配置”包罗目次“与库目次。包罗目次配置是指出包罗内容地点目次,DequeTest Project的配置如下:
https://i-blog.csdnimg.cn/direct/a3bbc2fdf9ea415597f41ac31f745a38.png
DequeTest Project的库目次配置是指出OpenCv库地点目次,其配置如下:
https://i-blog.csdnimg.cn/direct/bff38fb8a4c54eadbb20a03b63f7cbdb.png
上面探究了与Project工作目次及相关目次的配置。如果步伐要打开工作目次中的文件,须要怎样配置路径呢?比方,如果要为本示例的对话框中的打开,按钮添加代码要打开工作目次中的图像文件要怎样设置文件路径呢?
https://i-blog.csdnimg.cn/direct/9c2bde6018c14126ba6a5d070005d88b.png
现在来为”打开“按钮来添加变乱处置惩罚步伐,在添加代码前先将一个图像文件Copy到Project目次下,由于该目次即为Project的工作目次。如下:
https://i-blog.csdnimg.cn/direct/19b4518e563c4ce1ab0ec3a2b9e7dfb5.png
添加”打开”按钮变乱处置惩罚步伐的代码如下:
void CDequeTestDlg::OnBnClickedOpen()
{
        Mat src = imread("1.tif");
        if (src.empty())
                MessageBox(L"无法打开图像!");
        else
        {
                MatToCImage(src, mImage);
                DispalyImage(mImage);
        }
} 由于图像文件已经放在其工作目次中,所以不须要要特别指出文件地点目次。上面代码中用到了两个函数:MatToCImage与DisplayImage,这里两个函数事先已写好,因与本文主题无关,这里不特别做说明。试运行,结果如下:
https://i-blog.csdnimg.cn/direct/319749c940b64e65975cd34b83accdca.png
点击“打开”按钮,结果如下:
https://i-blog.csdnimg.cn/direct/d0a3f77ab2084eebbbc34aaaf51809a4.png
已正常打开图像。因.\\也是表现当前目次(相对路径表现法),上面的代码修改如下, 也应该可以正常打开图像。
void CDequeTestDlg::OnBnClickedOpen()
{
        //Mat src = imread("1.tif");
        Mat src = imread(".\\1.tif");
        if (src.empty())
                MessageBox(L"无法打开图像!");
        else
        {
                MatToCImage(src, mImage);
                DispalyImage(mImage);
        }
} 试运行,再点击打开,结果如下:
https://i-blog.csdnimg.cn/direct/77449ebf8874459cb0b782c2e44f4aff.png
确实可以大概正常打开。
        如果步伐编译成了可执行的exe文件,exe步伐文件的工作目次又是哪个目次?固然是可执行的exe文件地点目次。将可执行的exe文件与图像文件放在同一目,如下:
https://i-blog.csdnimg.cn/direct/ec6b2cb4bdbe4276a5796b22e9703273.png
以管理员身份运行步伐,点击打开,结果如下:
https://i-blog.csdnimg.cn/direct/456bb28c003845a7bded1e72cbaac36d.png
可以正常打开。如果将“打开”的源代码改为如下:
void CDequeTestDlg::OnBnClickedOpen()
{
        //Mat src = imread("1.tif");
        //Mat src = imread(".\\1.tif");
        Mat src = imread("..\\1.tif");
        if (src.empty())
                MessageBox(L"无法打开图像!");
        else
        {
                MatToCImage(src, mImage);
                DispalyImage(mImage);
        }
}
则图像文件则须要放在生成的可执行exe文件的上级文件夹中,否则无法打开。将上面Release文件夹中的可执行文件用新生成的文件替换。试运行,点击打开,结果如下:
https://i-blog.csdnimg.cn/direct/74b0785a55524223812330c13222ebb5.png
将图片移动到上级文件夹中。如下:
https://i-blog.csdnimg.cn/direct/42d3f55ca93749c78707789e00f65a2f.png

试运行,点击打开,结果如下:
https://i-blog.csdnimg.cn/direct/49ba97ca2ea24b32b32c618626f39187.png
有关VS C++的工作目次设置就探究到这里,须要说明的是:如果没有修改Project的工作目次,Project的工作目次就是Project的的地点目次,生成的可执行的exe文件的工作目次是其地点目次,即将生成的可执行的exe文件Copy到哪个目次下,这个目次就变成了生成的可执行的exe步伐文件的工作目次,如果该步伐文件选打开文件,文件的相对位置必须正确。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: VS C++ Project(项目)的工作目次设置