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对 ...
随机推荐
- Qt中addStretch的有趣应用
今天在使用addStretch,布局的时候,发现addStretch竟然是可以平均分配的,有意思.比如: QVBoxLayout *buttonLayout = new QVBoxLayout; bu ...
- C++堆和栈的比较(7个区别)
基础知识: 堆 栈是一种简单的数据结构,是一种只允许在其一端进行插入或删除的线性表.允许插入或删除操作的一端称为栈顶,另一端称为栈底,对堆栈的插入和删除操作被称 为入栈和出栈.有一组CPU指令可以实现 ...
- Palindrome(最长回文串manacher算法)O(n)
Palindrome Time Limit:15000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64u Submit ...
- GitHub学习笔记
安装 Ubuntu上安装Git sudo apt-get install git Windows上安装Git msysgit是Windows版的Git.从http://msysgit.github.i ...
- Python重写C语言程序100例--Part9
''' [程序71] 题目:编写input()和output()函数输入,输出5个学生的数据记录. 1.程序分析: 2.程序源码: 使用list来模拟结构(不使用class) stu = [strin ...
- Android学习——百度地图开发定位与显示Demo
百度地图给我们提供了很丰富的API供我们进行二次开发.百度地图的SDK与定位SDK在今年6月份进行了更新. 地图更新为3.0,定位更新为4.2.百度说:这次更新对接口有了较大部分的调整,与之前版本号不 ...
- 典型c库函数的实现
StrToInt:字符串转int输出 enum Status { kValid = , kInvalid = , }; int StrToInt(const char* str) { g_nStatu ...
- 数据库迁移(SQL SERVER导入数据到MySql)
地址:http://blog.csdn.net/jiaohougenyang/article/details/44937801 背景:项目最开始时使用的是SQL Server数据库,业务需求现要将数据 ...
- [Swust OJ 234]--IrreducibleNumber(题意太坑)
题目链接:http://acm.swust.edu.cn/problem/0234/ Time limit(ms): 1000 Memory limit(kb): 65535 Descriptio ...
- BZOJ 1965: [Ahoi2005]SHUFFLE 洗牌( 数论 )
对于第x个数, 下一轮它会到位置p. 当x<=N/2, p = x*2 当x>N/2, p = x*2%(N+1) 所以p = x*2%(N+1) 设一开始的位置为t, 那么t*2M%(N ...