visual studio默认安装路径,visual studio code运行路径怎么设置
Visual Studio 2008环境变量的配置(更改为:Visual Studio 2008中的程序路径配置更合理)
在调试Visual Studio 2008程序时,经常会有一些动态链接库(即dll文件)需要加载到项目中,从而依靠第三方库进行程序调试。
这些动态链接库往往是测试版或者开发版,也可能有几个版本;此时,如果直接将dll所在的目录添加到路径中,会有潜在冲突的风险;如果直接复制到Visual Studio的目录下,测试项目太多的话,每次更新新版本的动态链接库,都需要更新几次。复制粘贴就惨了。
在开发过程中,Visual Studio如何链接这些lib和dll文件?
一般来说,有几种方法可以更改Visual Studio的环境变量设置:
将它直接添加到系统的PATH变量中:
这种方法最简单最直接,但缺点是会影响全局路径设置,尤其是你包含大量dll进行测试的时候。
在Visual Studio全局设置中,将dll所在的目录添加到路径:
通过Visual Studio menu==Tools==Options==Projects and Solutions==VC目录,在下拉框中选择‘可执行文件’,然后添加dll所在的路径。
将所有dll直接复制到Visual Studio项目目录,或生成可执行文件的文件夹(默认为调试或发布目录):
这种方法也很简单,但是当你有几个项目的时候,每次更新SDK及其dll文件都要更新所有的项目,不符合文件唯一性的工程准则。
调试程序时,让Visual Studio帮你把当前工作目录切换到dll的对应目录:
在visual studio==project==properties==select configuration==configuration properties==debugging==working directory中,填写dll所在的目录,这样在调试程序时,Visual Studio会将当前工作目录切换到这个目录,并且会自动读取这个目录中的dll文件。
这种方法的优点很明显,也很简单!副作用也很明显。切换当前工作目录后,可能找不到程序的配置文件,所有的。找不到程序中编写的“/config . ini”;另外,你要把所有的dll都放在这个工作目录下,否则会提示你找不到xxx.dll的问题。
最后一种方法,我认为是最好的,是在Visual Studio项目属性中临时向PATH环境变量添加一个目录:
在《MSDN:如何:为项目设置环境变量》上也有类似的介绍。方法很简单。在“项目属性”==“调试”==“环境”中,添加类似以下内容的内容:
路径=% PATH %$(TargetDir)\DLLS
这样,$(TargetDir)\DLLS可以临时添加到项目所属的系统路径中。注意:这种方法常用于在自己的项目中使用自定义的环境变量(见我的另一篇http://write . blog . . net/postedit/7291815)。
您可以根据项目的实际情况灵活选择以上方法。
注意:本文参考了StackOverflow上的讨论主题:如何在visual studio中设置路径?
1.1关于C文件流中文件路径的讨论
在论坛闲逛的时候,经常发现有朋友在调试c/c文件流的代码时遇到了文件路径的问题。我用自己的经历来讨论一下吧。
1.1.1文件路径的基本概念
操作系统的文件系统是一个树状结构,具有目录和文件的概念。
windows系统的示例:
e:\ my programe \ BBG \ include \ BBG _ STL树
e:
bbg_stl_config.h
bbg_list
bbg_list.h
bbg_alloc
bbg_allocpool.h
bbg_alloc_adapter.h
bbg_construct.h
bbg_simple_alloc.h
bbg_allocator.h
BBG _ initialized . h
bbg_common
bbg_export.h
bbg_common.h
bbg_iterator
bbg_iterator.h
bbg_vector
bbg_vector.h
bbg_type
bbg_type_traits.h
bbg_algorithm
bbg _算法. h
linux系统的例子
yes @ yes-desktop:~/my program $ find/home/yes/my program-type f
/home/yes/myprograme/main
/home/yes/myprograme/test.c
/home/yes/my programe/TT-4.7 . zip
/home/yes/myprograme/main.cpp
/home/yes/my program/test
是@是-桌面:~/myprograme$
1.1.1.1相对路径
"."“点”代表当前目录所在的路径。对应windows例子中的路径是:“E: \我的程序\ bbg \ include \ bbg _ STL”
"."两个“点”表示相对于当前目录的上一级目录路径。windowss示例对应的路径是:“E: \ my program \ bbg \ include”
在UNIX系列和LINUX系统中,“”的含义还有“.”与windows的相同。这两条路径称为相对路径。
当然,类似于“.\ \ BBG \包含”也是一个相对路径
1.1.1.2目录分隔符的问题
从上面两个例子可以发现,windows系统的目录分隔符是“\”,而linux系统的目录分隔符是“/”
1.1.1.3绝对路径
在windows系统中,以字母开头的路径称为绝对路径,例如:
" E:\我的程序\ BBG \包括"
在linux系统中,以“/”开头的路径称为绝对路径,例如:
"/home/yes/my program/test "
注意:“/”是UNIX家族和LINUX所有目录的根目录。
1.1.2文件流的应用
先说几个例子。
//示例1
STD:of stream test _ 1( test _ 1 . txt );
test _ 1 hello world STD:endl;
test _ 1 . close();
//示例2
std:ofstream test_2(。\ \ test _ 2 . txt );
test _ 2 hello world STD:endl;
test _ 2 . close();
//示例3
std:ofstream test_3(.\ \ test _ 3 . txt );
test _ 3 hello world STD:endl;
test _ 3 . close();
//示例4
STD:of stream test _ 4( d:\ \ test _ 4 . txt );
test _ 4 hello world STD:endl;
test _ 4 . close();
描述:
1.上面的例子1和2是一样的,分别代表当前路径下的文件test_1.txt和test_2.txt。
2.例3是相对于当前路径的上一个目录下的文件test_3.txt。
3.例4是绝对路径,是D:盘下的test_4.txt。
4.用VS调试时,当前路径是VS工程文件所在的路径。
5.如果不是在调试状态下运行,当前路径就是“可执行文件”()所在的路径。exe)或“动态库”(dll)的位置。
现在,单独解释一下示例代码,
例如,我上面的示例代码保存在以下文件中:
d:\ My Documents \ Visual Studio 2005 \ Projects \ Test \ Test \ test2 . CPP
我的工程文件所在的路径如下:
d:\ My Documents \ Visual Studio 2005 \ Projects \ Test \ Test . vcproj
那么用VS调试的时候,
示例1和示例2中的Test_1.txt和test_2.txt
它位于目录D:\ My Documents \ Visual Studio 2005 \ Projects \ Test \ Test中。
例3中的Test_3.txt在D:\ My Documents \ Visual Studio 2005 \ Projects \ Test \目录下。
例4中的Test_4.txt在D:的根目录下。
如果我们不是VS调试,直接执行可执行文件。例如,我的可执行文件的路径是:
D:\我的文档\ Visual Studio 2005 \项目\测试\调试\ Test.exe
所以,
示例1和示例2中的Test_1.txt和test_2.txt
它位于目录D:\ My Documents \ Visual Studio 2005 \ Projects \ Test \ Debug中。
例3中的Test_3.txt在目录D:\ My Documents \ Visual Studio 2005 \ Projects \ Test下。
例4中的Test_4.txt在D:的根目录下。
Windows路径分隔符描述:
之前不是说windows用“\”做路径分隔符吗?但是上面最后三个例子怎么都用“\”呢?
这是因为在字符串中,“”是转义字符表示形式,必须用“\”来表示“\”字符。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。