VS2005得include,library,src等路径自动设置
来源:互联网 发布:绘图软件培训班 编辑:程序博客网 时间:2024/06/03 05:53
一般更改VS2005路径都是通过打开VS2005,然后选择”Tool”, “Options”, “Projects and Solutions”, “VC++ Directories”, 然后手动添加或删除include, library, source路径。
当经常需要批量更改路径时,以上手动步骤就太繁琐,太麻烦了。其实VS2005把这些路径设置存在CurrentSettings.vssettings文件中。这个文件通常放在My Documents/Visual Studio 2005/Settings下。
可以以文本方式打开文件,可以看到它是一个xml格式,查找如下路径可以找到include, library, source的设置:
---------------------------------------------------------------------------------------
<UserSettings>
<ToolsOptions>
<ToolsOptionsSubCategory name="VCDirectories" ……>
<PropertyValue name="IncludeDirectories"> …</PropertyValue>
<PropertyValue name="LibraryDirectories "> …</PropertyValue>
<PropertyValue name="SourceDirectories "> …</PropertyValue>
---------------------------------------------------------------------------------------
把里面的内容整理一下,显示如下:
---------------------------------------------------------------------------------------
Win32
|
$(VCInstallDir)lib;
$(VCInstallDir)atlmfc/lib;
$(VCInstallDir)atlmfc/lib/i386;
$(VCInstallDir)PlatformSDK/lib;
$(FrameworkSDKDir)lib;
$(VSInstallDir);
$(VSInstallDir)lib;
D:/works/ACE/ACE_wrappers/lib;
D:/local_vap/VAPLib;
D:/local_vap/MsXml3/lib;
D:/local_vap/Adfin/lib/mrv
|
Pocket PC 2003 (ARMV4)
|
$(VSInstallDir)SmartDevices/SDK/PocketPC2003/lib/ARMV4;
$(VCInstallDir)ce/atlmfc/lib/ARMV4;
$(VCInstallDir)ce/lib/ARMV4;
|
Smartphone 2003 (ARMV4)
|
$(VSInstallDir)SmartDevices/SDK/SmartPhone2003/lib/ARMV4;
$(VCInstallDir)ce/atlmfc/lib/ARMV4;
$(VCInstallDir)ce/lib/ARMV4;
---------------------------------------------------------------------------------------
可以看到他以|分隔开了不同的小块,其中第二个小块就是我们在VC中的include设置路径,前面几条是VC默认的,后面以D:开头的就是个人后面添加的。手动改变这些字符就可以达到通过VC更改同样的效果。
在这里,我通过perl和dos的批处理自动进行include, library, src路径的自动改变。
首先,创建一个文本文件,填入我们需要的路径设置:
(My_vc_path.txt):
---------------------------------------------------------------------------------------
library=
D:/works/ACE/ACE_wrappers/lib;
D:/local_vap/VAPLib;
D:/local_vap/MsXml3/lib;
D:/local_vap/Adfin/lib/mrv;
include=
D:/works/ACE/ACE_wrappers;
D:/local_vap/VAPInclude;
D:/local_vap/Adfin/include/mrv;
D:/local_vap/MsXml3/inc;
src=
D:/works/ACE/ACE_wrappers/ace;
D:/works/dev_net/library/vaabase/trunk/Source Code;
---------------------------------------------------------------------------------------
然后是perl文件,他的主要功能就是打开My_vc_path.txt,读入设置,然后再打开CurrentSettings.vssettings,查找相应路径并进行替换。这里要注意不要把VC默认的路径给替换了。
Perl 程序代码:
(vc_path_change.pl):
---------------------------------------------------------------------------------------
if (@ARGV < 2)
{
die ('usage : "vssettings file name" "your file name"');
}
$vc_path = @ARGV[0];
$my_vc_path = @ARGV[1];
$vsseeting_text = "";
@my_setting_lines = ();
if (! open (VC_PATH, $vc_path))
{
die ("can not open /"$vc_path/"");
}
else
{#读入CurrentSettings.vssettings文件内容,并存入$vsseeting_text
@tmpLines = <VC_PATH>;
$vsseeting_text = join (" ", @tmpLines);
close (VC_PATH);
}
if (! open (MY_VC_PATH, $my_vc_path))
{
die ("can not open /"$my_vc_path/"");
}
else
{
@my_setting_lines = <MY_VC_PATH>;
chop (@my_setting_lines);
close (MY_VC_PATH);
}
@my_settings = ();
{#解析获取自己的 include, lib, src 设置
@my_vc_path_para = ("include=", "library=", "src=");
$para_index = 0;
foreach $line (@my_setting_lines)
{
$math_para = 0;
for ($index=0; $index<3; ++$index)
{
if ($line =~ $my_vc_path_para[$index])
{
$math_para = 1;
$para_index = $index;
}
}
if ($math_para == 0)
{
$my_settings[$para_index] .= $line;
}
}
for ($index=0; $index<3; ++$index)
{
print ("$my_vc_path_para[$index]" . $my_settings[$index], "/n");
}
}
{#替换路径
@str_header = ('<PropertyValue name="IncludeDirectories">',
'<PropertyValue name="LibraryDirectories">',
'<PropertyValue name="SourceDirectories">');
$str_ender = '</PropertyValue>';
for ($index=0; $index<3; ++$index)
{
#<PropertyValue name="IncludeDirectories"> …</PropertyValue>
$pattern = "(.*$str_header[$index])(.+?)($str_ender.*)";
@list1 = $vsseeting_text =~ /(.*$str_header[$index])(.+?)($str_ender.*)/s;
print ("Fetch full path : $list1[1]/n");
#Win32|$(VCInstallDir)include;...|...
@list2 = $list1[1] =~ /^(.*?/|)(.+?)(/|.*)/s;
print ("Fetch path : $list2[1]/n");
#$(VCInstallDir)include;...D:/local_vap/SSL/include;
@system_path = $list2[1] =~ /(/$.+?;)/g;
$list2[1] = join ("", @system_path) . $my_settings[$index];
print ("New path = $list2[1]", "/n");
$list1[1] = join ("", @list2);
$vsseeting_text = join ("", @list1);
}
}
if (! open (VC_PATH, ">" . $vc_path))
{
die ("can not open /"$out_path/"");
}
else
{
print VC_PATH ($vsseeting_text);
close (VC_PATH);
}
---------------------------------------------------------------------------------------
由于perl程序需要两个参数,一个是CurrentSettings.vssettings文件的路径,另一个是自己的设置文件,所以再写个cmd文件。
---------------------------------------------------------------------------------------
set vssetting_file=C:/Documents and Settings/Jiqin.Hong/My Documents/Visual Studio 2005/Settings/CurrentSettings.vssettings
set my_file=./my_vc_path_1.txt
perl vc_path_change.pl "%vssetting_file%" "%my_file%"
---------------------------------------------------------------------------------------
好,到此完成,每次需要更改VC的include, library, src等路径时,创建好文本路径文件,填入设置,然后运行cmd文件即可。
- VS2005得include,library,src等路径自动设置
- VS2005的include,library,src等路径自动设置
- vs2005 添加 include路径
- VS2010 设置include路径
- VS2012设置include路径
- directshow include lib 路径设置
- vivado include文件 路径设置
- VS2005 设置DX工作路径
- iOS-文件路径 temp document library 等
- vs 中 include 相对路径 设置
- eclipse cdt include路径 和 库设置
- VS2005 CFileDialog设置文件默认打开路径
- VS2010 设置全局Include Directories与Library Directories
- VS2010 设置全局Include Directories与Library Directories
- VS2010 设置全局Include Directories与Library Directories
- vs2005设置不自动加载vmware
- opencms模板中include另一个模板中,资源src路径问题
- winform中嵌入unity3d,并动态设置路径src
- 二级必会形容词
- 有用但不太熟悉的LINUX命令
- 每天一设计模式之单例模式
- jdk与jre的区别
- 一个求全排列的算法
- VS2005得include,library,src等路径自动设置
- Tomcat 配置详解分析
- js验证汉字,字母,数字
- [Boost系列] Boost学习
- 浅谈单片机A/D转换的处理方法
- 必应上市,感觉一般
- 急!课程设计报告比较烦
- vfp 版服设计
- Python Scripting for Computational Science 阅读笔记之矩阵