在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. PCL—低层次视觉—点云滤波(初步处理)

    点云滤波的概念 点云滤波是点云处理的基本步骤,也是进行 high level 三维图像处理之前必须要进行的预处理.其作用类似于信号处理中的滤波,但实现手段却和信号处理不一样.我认为原因有以下几个方面: ...

  2. 转response.sendRedirect()与request.getRequestDispatcher().forward()区别

    JSP中response.sendRedirect()与request.getRequestDispatcher().forward(request,response)这两个对象都可以使页面跳转,但是 ...

  3. spring cloud config 入门

    简介 Spring cloud config 分为两部分 server client config-server 配置服务端,服务管理配置信息 config-client 客户端,客户端调用serve ...

  4. Maven远程仓库

    根据Apache Maven声明:"只有当在本地和中心仓库找不到所需的依赖文件,才会到远程仓库去下载". 当在Maven里声明了一个本地和中心仓库都没有的库文件时,Maven会停止 ...

  5. sqort函数用法总结

    qsort包含在<stdlib.h>头文件中,此函数根据你给的比较条件进行快速排序,通过指针移动实现排序.排序之后的结果仍然放在原数组中.使用qsort函数必须自己写一个比较函数. 函数原 ...

  6. js中的this怎么理解

    本博客供自己学习备忘, js中的this感觉很混乱,目前还有不少地方搞得不是很清楚,看到一篇不错的文章,先摘下来 this是Javascript语言的一个关键字它代表函数运行时,自动生成的一个内部对象 ...

  7. Lunix中文乱码解决方案

    sudo vi /var/lib/locales/supported.d/local#添加下面的中文字符集zh_CN.GBK GBKzh_CN.GB2312 GB2312zh_CN.GB18030 G ...

  8. mac下git中文乱码

    今天从window切mac,git使用时各种问题.典型的就是,git commit 可以使用中文注释,但是使用 git log 查看的时候发现都是乱码,乱码效果如下: <B1><E0 ...

  9. hdu 1394 Minimum Inversion Number (裸树状数组 求逆序数 && 归并排序求逆序数)

    题目链接 题意: 给一个n个数的序列a1, a2, ..., an ,这些数的范围是0-n-1, 可以把前面m个数移动到后面去,形成新序列:a1, a2, ..., an-1, an (where m ...

  10. Java [Leetcode 337]House Robber III

    题目描述: The thief has found himself a new place for his thievery again. There is only one entrance to ...