在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\;
注意分号!!!注意下划线!!!注意库文件的函数声明和导出的类声明务必放在与工程名称相同的头文件中。

VS20xx下项目开发目录管理方法的更多相关文章

  1. PyCharm Django项目开发的调试方法

    下面介绍两种PyCharm Django项目开发的调试方法: 方法一: 1. 使用PyCharm 自带的django项目Debug工具, 当然前提条件是django项目环境已经搭建好了. 2. 在代码 ...

  2. python flask构建小程序订餐系统--centos下项目开发环境的搭建

    1.项目开发环境的搭建(Linux环境) 1)软件的安装 我们搭建整个项目的过程中,我们需要用到下面的一些软件,但是这些软件的安装过程我们在这里不用说明.(因为windows软件的安装比较的简单,类似 ...

  3. Android 编程之入门开发目录管理器开发抽屉与文件分类-4

    在此目录管理APP里,我们能够尝试引用一些新的元素.在这里我给打击介绍一个叫抽屉的布局,QQ就用到了抽屉布局.不 过他们又在原有的基础上自己开发了新的抽屉布局.而且还蛮高大上的,顺便说说分类管理.这些 ...

  4. Vue项目开发目录结构

    最近做一些CI+Vue开发的简单项目,由于刚开始一直从事后端,对Vue了解不是很多,fork了团队的项目代码发现项目的文件夹很多,一时间有些懵,上网上参考了部分资料,博客园中的放晴的天空与狮子爱吃草两 ...

  5. lua在linxu和windows系统下的遍历目录的方法

    在windows下遍历目录使用lfs库:例如遍历整个目录下的所有文件 local lfs = require "lfs" function findPathName(path)  ...

  6. Android 编程之入门开发目录管理器开发文件事件操作-2

    上一篇博客,我们已经得到了目录列表,我们须要对文件列表子项加入事件,比方我们点击的是文件.就运行 打开操作,点击的是目录运行打开目录操作,遍历文件清单.以此类推直到最后一个是文件位置,关于文件 与目录 ...

  7. php 在windows下配置虚拟目录的方法

    1.先找到apache的配置文件 httpd.conf 找如如下代码: # Virtual hosts#Include conf/extra/httpd-vhosts.conf 把# Include ...

  8. linux下项目开发加载动态库:ldconfig与 /etc/ld.so.conf

    场景:自己开发一个项目,程序里包含一些自定义动态库.运行,需要加载这些动态库. 假如这些库在/pro/output/lib/下面,可执行程序在/pro/output/bin/下面. 那么,我们需要: ...

  9. python学习之-项目开发目录规范

    软件目录结构规范有什么好处: 通过规范化,能够更好的控制软件结构,让程序具有更高的可读性. 项目目录组织结构如下: Foo/ # 项目名 --bin/ # 可执行文件目录 --foo # 可执行程序 ...

随机推荐

  1. Hibernate逍遥游记-第10章 映射继承关系-003继承关系树中的每个类对应一个表(joined-subclass)

    1. 2. <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate ...

  2. Android:布局单位换算

    一.px 像素,是屏幕上显示数据的最基本的点. 二.dpi dpi(Dots Per Inch):每英寸点数,也可称为像素密度,即屏幕对角线像素值÷英寸值 比如480x800分辨率4.0英寸的手机计算 ...

  3. NSDictionary 遍历

           NSDictionary *dic1=[NSDictionary dictionaryWithObjectsAndKeys: @"1",@"a", ...

  4. Servlet中Service方法

    doGet方法只能处理Get方式提交的请求,doPost则可以处理Post方式提交的请求, 一种既可以处理Get方式又可以处理Post方式的提交的请求,它就是Service方法. service方法用 ...

  5. 12个目标跟踪方面的资料12 Tracking

    Goal Tracking Template - FEMA.gov Goal Tracking Template Set a weekly or biweekly deadline to report ...

  6. Uboot 2014.07 makefile分析 - 其他Cortex系列

    uboot的官网可以通过谷歌搜索得到,显示结果第一个链接就是. 官网:: http://www.denx.de/wiki/U-Boot ftp下载: ftp://ftp.denx.de/pub/u-b ...

  7. ifdebug

    #if DEBUG 首先,大小写不能写错. 其次,解决方案配置设为:Debug,才会执行该语句,如果在条件里面搭配Debug.Assert等,效果甚佳.而如果要设置为Release模式,就不会执行条件 ...

  8. BZOJ3681: Arietta

    题解: 数据结构来优化网络流,貌似都是用一段区间来表示一个点,然后各种乱搞... 发现主席树好吊...在树上建主席树貌似有三种方法: 1.建每个点到根节点这条链上的主席树,可以回答和两点间的路径的XX ...

  9. CentOS6.6安装mysql出现的问题

    mysql编译需要cmake,我的cmake-2.6.4-5.el6.i686,最新版的是3.1.0,我就先用2.6.4的试试 ​ [root@localhost src]# wget http:// ...

  10. HDU 3844 Mining Your Own Business(割点,经典)

    题意: 给出一个连通图,要求将某些点涂黑,使得无论哪个点(包括相关的边)撤掉后能够成功使得剩下的所有点能够到达任意一个涂黑的点,颜料不多,涂黑的点越少越好,并输出要涂几个点和有多少种涂法. 思路: 要 ...