VC工程的文件管理设置
2009-09-18 10:35
330 查看
也许你已经习惯了VS默认的工程文件保存路径,但有些人希望工程的源文件和生成文件能按照自己的安排对号入座,方便管理。例如希望把所有的*.h文件放入include文件夹,.cpp文件放入source文件夹,.lib文件放入lib文件夹,把大量的中间文件丢进TEMP等等。
下面是我自己习惯的一个动态链接库的配置:
VS2008+SP1
首先解决方案配置设置4个
(当然这个根据你自己需求,如果库没有用到TCHAR之类的宏,那么一般定义Debug和Release就OK拉。)
Debug
Release
Unicode_Debug
Unicode_Release
四个配置的公共设置是
配置属性->常规->输出目录:$(SolutionDir)Temp/Link/$(ProjectName)/$(ConfigurationName)/
配置属性->常规->中间目录:$(SolutionDir)Temp/Compile/$(ProjectName)/$(ConfigurationName)/
当编译时候以上文件目录会自动生成。
配置属性->常规->配置类型:这个当然都必须选择一样的啦,这里的示例为动态链接库(.dll)
配置属性->连接器->高级->导入库:$(TargetDir)$(TargetName).lib
配置属性->生成事件->生成后事件->命令行:
copy $(TargetPath) $(ProjectDir)Bin/;
copy $(TargetDir)$(TargetName).lib $(ProjectDir)Bin/;
copy $(ProjectDir)include/I$(ProjectName).h $(ProjectDir)Bin/;
Bin文件夹得自己生成哦。I$(ProjectName).h这个是接口的头文件了,方便C++调用哈。
如果有def文件,
配置属性->连接器->输入->模块定义文件:source/mc_log.def
注意def文件中千万别定义LIBRARY,否则所有的lib文件都将导入该定义名的dll文件,会出现几个媳妇抢老公的场面。
预编译头实际上是个好东东,可以缩短编译时间
配置属性->C/C++->预编译头->创建预编译头:(/Yc)
使用 /Yc 创建预编译头。与可选的 hdrstop 杂注一起使用时,/Yc 允许对头文件和源代码都进行预编译。选择 /Yu 在现有编译中使用现有预编译头。还可以将 /Fp 与 /Yc 和 /Yu 选项结合使用,为预编译头提供其他名称。否则会出现fatal error C1083: Cannot open precompiled header file: 'XXX.pch': No such file or directory的错误
配置属性->C/C++->预编译头->通过文件创建PCH:../include/stdafx.h
如果用编译头,那么必须把所有.cpp文件放到同一个文件夹,这样才能保证大家都能使用同一个#include "../include/stdafx.h"。
至于stdafx.h叫什么,放什么位置都无所谓了。
配置属性->C/C++->预编译头->预编译头文件:$(IntDir)$(TargetName).pch
这里采用默认的中间路径产生目标文件名称的pch文件。
Debug和Unicode_Debug的公共设置:
如果是多系统可以比如WIN32;或者你想要不同化版本,可以在这里多设置几个啦比如VERSION1;在代码判断宏就知道是哪个版本啦。
配置属性->C/C++->代码生成->运行库:/MDd
因为默认是/MT,表示使用多线程的静态C库。定义 _DEBUG、_MT 和 _DLL.
配置属性->连接器->调试->生成调试信息:是
配置属性->C/C++->常规->调试信息格式:用于“编辑并继续”的程序数据库(/ZI)
配置属性->C/C++->常规->警告登记:3级(/W3)
Release和Unicode_Release的公共设置:
配置属性->C/C++->预处理器->预处理器定义:NDEBUG;
配置属性->C/C++->代码生成->运行库:/MD
因为默认是/MT,表示使用多线程的静态C库。定义 _MT 和 _DLL,
配置属性->连接器->调试->生成调试信息:否
Debug的单独设置:
配置属性->常规->字符集:使用多节字
配置属性->连接器->常规->输出文件:$(OutDir)/$(ProjectName)d.dll
Release的单独设置:
配置属性->常规->字符集:使用多节字
配置属性->连接器->常规->输出文件:$(OutDir)/$(ProjectName).dll
Unicode_Debug的单独设置:
配置属性->常规->字符集:使用UNICODE
配置属性->连接器->常规->输出文件:$(OutDir)/$(ProjectName)ud.dll
Unicode_Release的单独设置:
配置属性->常规->字符集:使用UNICODE
配置属性->连接器->常规->输出文件:$(OutDir)/$(ProjectName)u.dll
这个就是我比较喜欢的工程配置,当然大的解决方案的设置要复杂一点,需要各个工程配置互动。
你可以任意按自己喜好来设置,不管怎样用了以后你会感觉舒服和方便很多,至少你COPY这个解决方案的时候知道哪些可以丢掉,查找输出文件不要频繁地去翻目录。
下面是我自己习惯的一个动态链接库的配置:
VS2008+SP1
首先解决方案配置设置4个
(当然这个根据你自己需求,如果库没有用到TCHAR之类的宏,那么一般定义Debug和Release就OK拉。)
Debug
Release
Unicode_Debug
Unicode_Release
四个配置的公共设置是
配置属性->常规->输出目录:$(SolutionDir)Temp/Link/$(ProjectName)/$(ConfigurationName)/
配置属性->常规->中间目录:$(SolutionDir)Temp/Compile/$(ProjectName)/$(ConfigurationName)/
当编译时候以上文件目录会自动生成。
配置属性->常规->配置类型:这个当然都必须选择一样的啦,这里的示例为动态链接库(.dll)
配置属性->连接器->高级->导入库:$(TargetDir)$(TargetName).lib
配置属性->生成事件->生成后事件->命令行:
copy $(TargetPath) $(ProjectDir)Bin/;
copy $(TargetDir)$(TargetName).lib $(ProjectDir)Bin/;
copy $(ProjectDir)include/I$(ProjectName).h $(ProjectDir)Bin/;
Bin文件夹得自己生成哦。I$(ProjectName).h这个是接口的头文件了,方便C++调用哈。
如果有def文件,
配置属性->连接器->输入->模块定义文件:source/mc_log.def
注意def文件中千万别定义LIBRARY,否则所有的lib文件都将导入该定义名的dll文件,会出现几个媳妇抢老公的场面。
预编译头实际上是个好东东,可以缩短编译时间
配置属性->C/C++->预编译头->创建预编译头:(/Yc)
使用 /Yc 创建预编译头。与可选的 hdrstop 杂注一起使用时,/Yc 允许对头文件和源代码都进行预编译。选择 /Yu 在现有编译中使用现有预编译头。还可以将 /Fp 与 /Yc 和 /Yu 选项结合使用,为预编译头提供其他名称。否则会出现fatal error C1083: Cannot open precompiled header file: 'XXX.pch': No such file or directory的错误
配置属性->C/C++->预编译头->通过文件创建PCH:../include/stdafx.h
如果用编译头,那么必须把所有.cpp文件放到同一个文件夹,这样才能保证大家都能使用同一个#include "../include/stdafx.h"。
至于stdafx.h叫什么,放什么位置都无所谓了。
配置属性->C/C++->预编译头->预编译头文件:$(IntDir)$(TargetName).pch
这里采用默认的中间路径产生目标文件名称的pch文件。
Debug和Unicode_Debug的公共设置:
如果是多系统可以比如WIN32;或者你想要不同化版本,可以在这里多设置几个啦比如VERSION1;在代码判断宏就知道是哪个版本啦。
配置属性->C/C++->代码生成->运行库:/MDd
因为默认是/MT,表示使用多线程的静态C库。定义 _DEBUG、_MT 和 _DLL.
配置属性->连接器->调试->生成调试信息:是
配置属性->C/C++->常规->调试信息格式:用于“编辑并继续”的程序数据库(/ZI)
配置属性->C/C++->常规->警告登记:3级(/W3)
Release和Unicode_Release的公共设置:
配置属性->C/C++->预处理器->预处理器定义:NDEBUG;
配置属性->C/C++->代码生成->运行库:/MD
因为默认是/MT,表示使用多线程的静态C库。定义 _MT 和 _DLL,
配置属性->连接器->调试->生成调试信息:否
Debug的单独设置:
配置属性->常规->字符集:使用多节字
配置属性->连接器->常规->输出文件:$(OutDir)/$(ProjectName)d.dll
Release的单独设置:
配置属性->常规->字符集:使用多节字
配置属性->连接器->常规->输出文件:$(OutDir)/$(ProjectName).dll
Unicode_Debug的单独设置:
配置属性->常规->字符集:使用UNICODE
配置属性->连接器->常规->输出文件:$(OutDir)/$(ProjectName)ud.dll
Unicode_Release的单独设置:
配置属性->常规->字符集:使用UNICODE
配置属性->连接器->常规->输出文件:$(OutDir)/$(ProjectName)u.dll
这个就是我比较喜欢的工程配置,当然大的解决方案的设置要复杂一点,需要各个工程配置互动。
你可以任意按自己喜好来设置,不管怎样用了以后你会感觉舒服和方便很多,至少你COPY这个解决方案的时候知道哪些可以丢掉,查找输出文件不要频繁地去翻目录。
相关文章推荐
- log4j2在web工程设置日志文件保存在工程目录内
- 设置文件属性 VC
- 巧用VC工程下的rc文件
- 当Android工程中提示你找不到头文件,但你已经设置头文件路径了
- DOS批处理命令递归删除给定的文件(夹),兼VC工程清理小工具
- VC设置cookies实现文件刷下载量
- ffmpeg 转换VC工具已经可以生成工程文件(续)
- VC2013同一个工程生成的exe文件显示不同的图标
- iOS开发中 .pch 文件的使用及其相关工程设置
- VC按工程指定库文件路径
- VC++的工程文件说明
- VC 2005 解决方案的目录结构设置和管理
- 如何得到VC工程的makefile文件
- VC 工程中包含 .c 或cpp文件编译时产生的.pch预编译头错误(C1853)
- VC 工程属性中关于CRT和 Use of MFC 的设置
- VC/MFC 设置程序与文件关联与双击文件获取文件路径
- VC++全局包含文件路径设置( Include 设置)
- 关于VC工程的RC文件
- VC 2005 解决方案的目录结构设置和管理
- VC 2005 解决方案的目录结构设置和管理 .