VS2008+Qt 项目目录
1、项目开发环境:VS2008,QT4.7
2、项目的目录:

1)PETCT是解决方案名字
2)Bin目录存放所有动态链接库和执行档,包括自己的产出和第三方库,区分Release和Debug两个版本。另外,程序运行过程中需要外部的数据文件和启动时需要的配置文件等等都可放于该目录
3)ConsoleSubsytem是应用项目目录
4)Include用于存放第三方库的头文件
5)Lib目录用于存放导入库或者静态库(包括第三方库和自己的项目)
6)Temp用于存放临时生成文件,其中Compile存放编译器编译时生成的obj文件,Link存放链接器的输出文件。
7)TestDll是动态链接库项目目录,该项目会生成相关的Dll文件和Lib导入库文件
上面目录结构清晰,一面了然,当我们的程序需要制作安装包或者要打包源码
发布的时候,它能够使得我们生活变得更容易^_^
制作安装包时我们只需将“/PETCT/Bin/Release/”目录下的所有文件打包。
发布和转移源码的时候我们可以打包除了Temp目录以外“/GMA/”下面的所有文件和目录(如果不需要执行档,也可不包括Bin)。
我们的需求是明确的,可是VC 2008并不会自动为我们做好上面所有的事情。不过我们并不需要编写复杂的编译脚本(makefile),只需要简单的修改项目的缺省设置即可。
我们需要VC为我们做的事情包括:
1)使用“/PETCT/Temp/Compile/”作为项目编译时使用的中间目录
2)使用“/PETCT/Temp/Link/”作为项目链接的输出目录
3)当项目是应用程序时,在构建结束后拷贝执行文件到“/PETCT/Bin/Release/”或“/PETCT/Bin/Debug/”,当项目是动态链接库时,除了拷贝dll到Bin,还拷贝导入库到“/PETCT/Lib/”
4)当项目是应用程序时,调试时运行“/PETCTBin/Debug/”或“/PETCT/Bin/Release/”下面的执行文件,并以“/PETCTBin/Debug/”或“/PETCT/Bin/Release/”为工作目录
首先看一下项目设置中可以使用的宏,常用的有:
|
ConfigurationName |
配置名字,通常是Debug或者Release |
|
IntDir |
编译器使用的中间目录,产出obj文件 |
|
OutDir |
链接器使用的输出目录 |
|
ProjectDir |
项目目录 |
|
ProjectName |
项目名字 |
|
SolutionDir |
解决方案目录 |
|
TargetDir |
目标输出文件所在的目录 |
|
TargetExt |
目标输出的扩展名 |
|
TargetFileName |
目标输出文件名,包括扩展名 |
|
TargetName |
目标输出名,不包括扩展名 |
|
TargetPath |
目标输出文件的全路径名 |
3、详细配置过程
首先设置DLL项目TestDll
1)使用“/PETCT/Temp/Compile/”作为项目编译时使用的中间目录
2)使用“/PETCT/Temp/Link/”作为项目链接的输出目录
注意高亮的部分,首先将配置改成All Configuration(全部配置),这样可以让我们同时修改Debug和Release的部分;
Output Directory(输出目录,链接器)栏位填入:
$(SolutionDir)Temp\Link\$(ProjectName)\$(ConfigurationName)
Intermediate Directory(中间目录,编译器)栏位填入:
$(SolutionDir)\Temp\Compile\$(ProjectName)\$(ConfigurationName)
步骤1),步骤2),见下图。

3)构建结束后拷贝动态链接库到“/GMA/Bin/Release/”或“/GMA/Bin/Debug/”,拷贝导入库到“/GMA/Lib/”
我们通常都会在Debug版本的输出库后面加上字母“d”以表示这是Debug版本,在Debug配置下,修改Import Library栏位,见下图

VC可以让我们设置构建前后执行的脚本程序,所以为了完成3,我们需要写构建后执行的脚本:
在Command Line中填入,Debug配置下:
echo D | xcopy "$(TargetPath)" "$(SolutionDir)Bin\$(ConfigurationName)" /y
echo D | xcopy "$(TargetDir)$(TargetName)d.lib" "$(SolutionDir)Lib" /y
Release配置下:
echo D | xcopy "$(TargetPath)" "$(SolutionDir)Bin\$(ConfigurationName)" /y
echo D | xcopy "$(TargetDir)$(TargetName).lib" "$(SolutionDir)Lib" /y
之所以要分别设置是因为VC没有表示导入库的宏名字 -_-P
OK,到此为止,你就可以编译TestDll项目试试是不是一切正常了,不过请确认拷贝的目标目录事先建立好。

然后我们设置应用项目ConsoleSubsytem
1)使用“/PETCT/Temp/Compile/”作为项目编译时使用的中间目录
2)使用“/ PETCT /Temp/Link/”作为项目链接的输出目录
首先将配置改成All Configuration(全部配置),这样可以让我们同时修改Debug和Release的部分;
Output Directory(输出目录,链接器)栏位填入:
$(SolutionDir)\Temp\Link\$(ProjectName)\$(ConfigurationName)
Intermediate Directory(中间目录,编译器)栏位填入:
$(SolutionDir)\Temp\Compile\$(ProjectName)\$(ConfigurationName)
见下图
3)构建结束后拷贝执行文件到“/ConsoleSubsytem/Bin/Release/”或“/ConsoleSubsytem/Bin/Debug/”
在Command Line中填入,All配置下:
echo D | xcopy "$(TargetPath)" "$(SolutionDir)Bin\$(ConfigurationName)" /y
见下图
4)调试时运行“/PETCT/Bin/Debug/”或“/PETCT/Bin/Release/”下面的执行文件,并以“/PETCT/Bin/Debug/”或“/PETCT/Bin/Release/”为工作目录。见下图
Debugging下,所有配置模式:
Command栏位填入:$(SolutionDir)Bin\$(ConfigurationName)\$(TargetFileName)
Working Directory栏位填入:$(SolutionDir)Bin\$(ConfigurationName)
这样就大功告成了,现在你就可以编译该执行程序并进行调试。
我稍微总结了一下网络上的关于VC项目文件目录的配置,主要结合自己现在项目要用的Qt。
网上值得推介的两篇文章有:
1、 Visual C++ 设置适合自己的解决方案目录结构 http://blog.csdn.net/akof1314/article/details/7190822
这篇新写的,也改正了网上出现的bug命令。很适合作参考来配置项目。
2、VC 2005 解决方案的目录结构设置和管理 http://blog.csdn.net/rogeryi/article/details/1481923
这个写的比较细,适合弄懂这样配置的原因
- VC_QT项目目录配置说明v1.0.1.2012-01-19.rar (214.1 KB)
- 下载次数: 2
from:http://qimo601.iteye.com/blog/1360086
VS2008+Qt 项目目录的更多相关文章
- Qt DLL总结【三】-VS2008+Qt 使用QPluginLoader访问DLL
目录 Qt DLL总结[一]-链接库预备知识 Qt DLL总结[二]-创建及调用QT的 DLL Qt DLL总结[三]-VS2008+Qt 使用QPluginLoader访问DLL 开发环境:VS20 ...
- qt项目转vs项目
Qt creator是一个非常好用的跨平台项目管理工具和集成开发环境(IDE).但是对于我自己来说Visual Studio依然是我最顺手的开发工具,由于Qt使用了moc,这样要是自己管理Visual ...
- 转:Qt项目中遇到的一些小问题汇总
链接:http://blog.csdn.net/yangyunfeizj/article/details/7082001 作者:GoatYangYang 公司让负责qt界面开发,但是接触qt又不 ...
- Qt入门之基础篇 ( 二 ) :Qt项目建立、编译、运行和发布过程解析
转载请注明出处:CN_Simo. 题解: 本篇内容主讲Qt应用从创建到发布的整个过程,旨在帮助读者能够快速走进Qt的世界. 本来计划是讲解Qt源码静态编译,如此的话读者可能并不能清楚地知道为何要静态编 ...
- 在Qt项目中如何添加一个已有的项目作为子项目
新建一个子目录项目(具体方法参见<类似Visual Studio一样,使用Qt Creator管理多个项目,创建子项目>),然后需要添加的项目移动到该子目录项目目录下,再在其pro文件中添 ...
- Hello World程序演示Qt项目的建立、编译、运行和发布
一.Qt项目的建立 1.选择项目模板. 选择"文件-->新建文件或工程",在选择模板页面选择Qt C++项目中的"Qt Gui应用"一项,然后单击&quo ...
- Qt编译目录下exe文件执行报错问题的解决办法
使用Qt5.9.3+vs2017环境,编译项目生成Debug目录,运行其中的exe文件,出现以下错误(qt creator调试状态下或出安装包后是可以运行的): 经过查阅资料,发现是我重新配置Qt开发 ...
- 使用VisualStudio2015开发QT项目
一直习惯用VS,做QT项目时,不停的来回切IDE有些不方便.研究了一下QT的编译. 实际QT编译的机制和cmake是相同的,QT的IDE使用pro文件进行项目管理.QMake通过解析pro工程文件,生 ...
- 创建Qt项目
创建Qt项目 1 创建Qt项目 2.1 使用向导创建 打开Qt Creator 界面选择 New Project或者选择菜单栏 [文件]-[新建文件或项目]菜单项 弹出New Project对 ...
随机推荐
- CoreAnimation (CALayer 动画)
CoreAnimation基本介绍: CoreAnimation动画位于iOS框架的Media层 CoreAnimation动画实现需要添加QuartzCore.Framework CoreAnima ...
- Android中通过进程注入技术改动广播接收器的优先级
前言 这个周末又没有吊事,在家研究了怎样通过进程的注入技术改动广播接收器的优先级.关于这个应用场景是非常多的.并且也非常重要.所以就非常急的去fixed了. Android中的四大组件中有一个广播:B ...
- 漂亮竖向菜单 有缓存 javascript
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- E - Phone List(字典序,string类型使用)
Description Given a list of phone numbers, determine if it is consistent in the sense that no number ...
- [Swust OJ 1097]--2014(数位dp)
题目链接:http://acm.swust.edu.cn/problem/1097/ Time limit(ms): 1000 Memory limit(kb): 32768 今年是2014年,所 ...
- STRUTS2获得session和request
在struts1中,获得到系统的request或者session对象非常方便,都是按照形参传递的,但是在struts2中,request和session都被隐藏了struts提供两种方式访问sessi ...
- This exception may occur if matchers are combined with raw values
org.mockito.exceptions.misusing.InvalidUseOfMatchersException: Invalid use of argument matchers!3 ma ...
- Linux内核中的宏:__init and __exit
ZZ FROM: http://blog.csdn.net/musein/article/details/742609 ======================================== ...
- C++11 thread::detach(2)
原文地址:http://www.cplusplus.com/reference/thread/thread/detach/ public member function <thread> ...
- 3522: [Poi2014]Hotel( 树形dp )
枚举中点x( 即选出的三个点 a , b , c 满足 dist( x , a ) = dist( x , b ) = dist( x , c ) ) , 然后以 x 为 root 做 dfs , 显 ...