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

这个写的比较细,适合弄懂这样配置的原因

 

 

from:http://qimo601.iteye.com/blog/1360086

时间: 2025-01-27 02:20:58

VS2008+Qt 项目目录的相关文章

VS2008+Qt一个解决方案下有多个项目是什么意思?这样做有什么用?各个项目之间文件有什么联系?

问题描述 VS2008+Qt一个解决方案下有多个项目是什么意思?这样做有什么用?各个项目之间文件有什么联系? 1.一个解决方案下有几个项目,这样是做什么用的?2.我看这几个项目里包含有部分相同的文件,这样是什么意思? 如果改动其中一个项目的文件,其他项目里的该文件会怎么样?3.之前查的资料说是什么引用,没看懂. 请求指点.谢谢你们! 解决方案 要具体看什么解决方案什么项目. 比如说一个经典的程序,分为客户端.服务器端,那么就要2个项目.其中客户端和服务器端显然共用调用接口之类的代码,那么这些代码

vc6-安装VC6后qt项目无法编译

问题描述 安装VC6后qt项目无法编译 原先使用vs2008+qt4.8开发项目,然后装了一个vc6.0之后,在08里编译qt项目的时候就会出现相面的错误:http://img.my.csdn.net/uploads/201411/07/1415362551_1890.png 解决方案 自己来回答好了,应该是VC6在安装的时候破坏了08安装目录下面的一些文件,把图片中的文件夹从另外一台电脑的08安装目录下拷过来覆盖一下就ok了

visual studio-VS编译qt项目出现Moc'ing xxx.h,系统找不到指定路径问题

问题描述 VS编译qt项目出现Moc'ing xxx.h,系统找不到指定路径问题 这是用visual studio2015从git导入的用qt框架编写的c++项目.项目路径https://github.com/AncientLysine/BiliLocal. 我装上了qt插件导入了项目然后出现下图报错 提示说找不到头文件,,但是这个头文件是存在并且目录是正确的.为啥就会报错呢?求解. 解决方案 qt的moc用来生成slot和signal的,首先看看那个路径的moc是否存在和能否运行,然后每一个涉

qt-CMake 构建Qt项目,出现无法找到合适的Qt版本

问题描述 CMake 构建Qt项目,出现无法找到合适的Qt版本 途中错误如何解决,求大神给出解决方案!尽量详细些,初学CMake.谢谢了! 解决方案 你去QT官网下载对应的版本,它都自带Cmake等

eclipse插件开发(获取项目目录)

问题描述 eclipse插件开发(获取项目目录) 有没有哪位大神搞eclipse插件开发的,小弟最近在搞这个,需要获取一下就是eclipse左边项目工程的目录,也就是路径啥的,有没有完整的插件包可以供参考一下,或者哪位大神指导一下,跪谢. 解决方案 Eclipse插件开发 目录Eclipse插件开发 获取Workspace下所有的项目

Xcode中iOS应用开发的一般项目目录结构和流程简介_IOS

项目所需的平台路径 1.开发平台路径: /Developer/Platforms 此路径下一般有三个目录,分别是mac电脑.模拟器.iphone真机 MacOSX.platform        iPhoneSimulator.platform iPhoneOS.platform 每个目录下都有一个/Developer/usr/bin目录,放置开发中需要的程序 总的目录比如:/Developer/Platforms/*/Developer/usr/bin/ 注意:*代表上面上个目录中的一个,具体

Qt项目中用QProcess打开了一个外部应用,怎么将这个外部应用关掉?

问题描述 Qt项目中用QProcess打开了一个外部应用,怎么将这个外部应用关掉? Qt项目中我设计了两个按钮,当点击其中一个按钮时用QProcess对象打开一个应用,点击另外一个按钮时想把打开的这个应用关掉,但是一直都没成功,怎么实现呢? 解决方案 Qt QProcess应用 解决方案二: 找到句柄来关闭进程 #include <windows.h> ... class ProcessKiller : public QObject { qint64 m_pid; public: Proces

MVVM 模式下iOS项目目录结构详细说明

原文出自[听云技术博客]:http://blog.tingyun.com/web/article/detail/650 我们在做项目的时候,会经常用到各种设计模式,最常见的要数 MVC (模型,视图,控制器)了.但是,今天我们要说的是另一种设计模式--MVVM. 所以 MVVM 到底是什么?下面,我们将结合代码,说明 MVVM 设计模式以及项目目录结构. 一.MVVM 模式介绍  MVVM 是 Model-View-View Model 的缩写,MVVM 听起来好像很复杂的样子,但它本质上就是M

Android编程入门之HelloWorld项目目录结构分析_Android

本文实例讲述了Android编程入门之HelloWorld项目目录结构.分享给大家供大家参考,具体如下: 我们介绍了如何搭建Android开发环境及简单地建立一个HelloWorld项目,本篇将通过HelloWorld项目来介绍Android项目的目录结构.本文的主要主题如下: 1.HelloWorld项目的目录结构 1.1.src文件夹 1.2.gen文件夹 1.3.Android 2.1文件夹 1.4.assets 1.5.res文件夹 1.6.AndroidManifest.xml 1.7