在VS20XX之后项目管理使用解决方案(solution)管理一个大的开发工程中多个项目(Project)。
以下目录配置与工程名称无关,适用于一般的工程组织过程。
对于一般的生成可执行程序的工程,使用下面的方法:
============================================
1-在*.sln所在的目录下新建如下的目录组织:
lib
include
bin\release
bin\debug
temp\link
temp\compile
2- All configuration下配置:
Configuration Properties\General
output Directory
$(SolutionDir)temp\link\$(ProjectName)\$(Configuration)\
Intermediate Directory
$(SolutionDir)temp\compile\$(ProjectName)\$(Configuration)\
3-编译连接完成后,将可执行程序拷贝到响应的bin的对应$(Configuration)之下,($(Configuration)一般是指debug和Release),在command的All之下配置:
copy $(TargetPath) $(SolutionDir)bin\$(Configuration)\;
4-选定$(SolutionDir)bin\$(Configuration)\;作为工作目录:
在All Configuration的Debugging之下:
Command下填写:
$(SolutionDir)bin\$(Configuration)\$(TargetFileName)
Working Directory下填写:
$(SolutionDir)bin\$(Configuration)\
对于一般的生成动态链接库dll文件的工程,使用下面的方法:
1- 新建solution,得到solution目录;
在solution目录下有如下文件夹组织:
lib 存放第三方库和本地项目编译完成后的库,debug和release的lib全都放在这里。
include 存放与第三方库和本地库相一致的库的头文件。
bin\release 存放编译完成后的可执行程序的release版本
bin\debug 存放编译完成后的可执行程序的debug版本
temp\link 临时链接目录
temp\compile 临时编译目录
*.sln,*.suo 解决方案文件文件
project1,project2,projectN 各个工程文件
经过上面的目录创建后,开始进行项目目录的配置工作。
务必注意所有下划线全都必须是反斜杠"\",如果在命令行中正反斜杠混合使用,命令会运行失败。
$(SolutionDir)的结尾是包含有一个反斜杠"\"的,请在拼接命令是注意。
以下目录配置与工程名称无关,适用于一般的工程组织过程。
在*.sln所在的目录下新建如下的目录组织:
lib
include
bin\release
bin\debug
temp\link
temp\compile
2- All configuration下配置:
Configuration Properties\General
output Directory
$(SolutionDir)temp\link\$(ProjectName)\$(Configuration)\
Intermediate Directory
$(SolutionDir)temp\compile\$(ProjectName)\$(Configuration)\
3- Linker\Advanced下配置Import Library
***在release选项中***
$(TargetDir)$(TargetName)_x64.lib 或者面向x86的代码使用
$(TargetDir)$(TargetName)_x86.lib
***在debug选项中***
$(TargetDir)$(TargetName)_x64_d.lib 或者面向x86的代码使用
$(TargetDir)$(TargetName)_x86_d.lib
4- 在完成编译之后,需要将必要的库转存到合适的目录下:
Build Events\Post-Build Event中,
***在release选项中***
copy $(TargetPath) $(SolutionDir)bin\$(Configuration)\;
copy $(TargetDir)$(TargetName)_x64.lib $(SolutionDir)lib\;
copy $(ProjectDir)$(TargetName).h $(SolutionDir)include\;
注意分号!!!注意下划线!!!注意库文件的函数声明和导出的类声明务必放在与工程名称相同的头文件中。
***在debug选项中***
copy $(TargetPath) $(SolutionDir)bin\$(Configuration)\;
copy $(TargetDir)$(TargetName)_x64_d.lib $(SolutionDir)lib\;
copy $(ProjectDir)$(TargetName).h $(SolutionDir)include\;
注意分号!!!注意下划线!!!注意库文件的函数声明和导出的类声明务必放在与工程名称相同的头文件中。