• 5203阅读
  • 3回复

[提问]请问在添加头文件的时候,在.pro文件里添加和用include有什么区别? [复制链接]

上一主题 下一主题
离线ccen3020
 

只看楼主 倒序阅读 楼主  发表于: 2013-09-04
比如串口这个

To use these classes in your application, use the following include statement:

#include <QtSerialPort/QtSerialPort>

To link against the module, add this line to your qmake .pro file:

QT += serialport

两个方式在什么地方有区别?

离线dbzhang800

只看该作者 1楼 发表于: 2013-09-04
这两个没有共同点。
离线XChinux

只看该作者 2楼 发表于: 2013-09-04
QT += serialport
你加了这个后,编译时会自动加一些宏,以及链接时加一些库,还及加一些include路径。
这样才正确编译代码。

如果没有上面那句,下面的include语句无效的,会提示你找不到文件的
#include <QtSerialPort/QtSerialPort>
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线dbzhang800

只看该作者 3楼 发表于: 2013-09-05
前者是你的源码不可分割的一部分,后者是传递给编译器链接器的选项。前者的内容是不变的,后者随着你所用的编译环境而变。

-------------


比如,一个最简单的C++ Qt的程序,取名 main.cpp,里面少不了各个#include吧

然后你要编译它,需要给编译器传递很多选项:
  1. cl main.cpp -ID:/Qt/4.8.0/include -DQT_CORE_LIB -Femain -link -LIBPATH:D:/Qt/4.8.0/lib QtCore4.lib

  1. g++ main.cpp -DQT_CORE_LIB -Ie:\Qt\4.8.0\include -o main -Le:\Qt\4.8.0\lib -lQtCore4

在qmake的工程中,这些选项就是通过QT+= 或CONFIG+= 或 ... 来设置的。
当你不用qmake时,你需要的又是另外一套东西。
快速回复
限100 字节
 
上一个 下一个