qmake 의 CONFIG 와 QT 의 잡담
먼저 예 를 들 어 보 자.
#include <QtCore/QCoreApplication>
#include <QtCore/QDebug>
int main(int argc, char** argv)
{
QCoreApplication app(argc, argv);
qDebug()<<"hello qt!";
app.exec();
}
어떻게 이 프로그램 을 컴 파일 합 니까?우 리 는 C + + 프로그램 을 구축 하 는 것 을 알 고 있 습 니 다. 컴 파일 (컴 파일 예비 처리 포함), 링크 등 몇 단계 가 아 닙 니 다.
헤더 파일 경로
$QTDIR/include
라 이브 러 리 파일
QtCore4. lib (또는 그 에 상응하는 다른 형식)
답 은 간단 합 니 다.
g++ main.cpp -Ie:\Qt\4.7.0\include -o main -Le:\Qt\4.7.0\lib -lQtCore4
혹시
cl main.cpp -ID:/Qt/4.7.0/include -Femain -link -LIBPATH:D:/Qt/4.7.0/lib QtCore4.lib
매개 변수의 의 미 는 참고 할 수 있다. C + + 에서 Qt 까지
헤더 라 이브 러 리 파일
C + + 에서 제3자 라 이브 러 리 를 사용 하 는 과정 은 헤더 파일, 링크 라 이브 러 리 파일 을 포함 하 는 과정 임 을 알 고 있 습 니 다.
QString 사용 하기
필요 - lQtCore 4
QWidget 사용 하기
필요 - lQtGui 4
QFtp 사용 하기
필요 - lQtNetWork 4
QWebView 사용
- lQtWebKit 4 필요
...
...
다음은 Qt 의 헤더 파일 과 라 이브 러 리 파일 을 간단하게 살 펴 본 다음 에 qmake 가 어떻게 처리 하 는 지 살 펴 보 겠 습 니 다. 왜 우 리 는. pro 파일 에서 이 헤더 파일 경로 와 라 이브 러 리 파일 Qt 헤더 파일 을 지정 하지 않 아 도 됩 니까?
그러나 우 리 는 모두 C, C + + 를 배 웠 고 뾰족 한 괄호 나 작은 따옴표 안에 머리 파일 의 파일 이름 이 있다 는 것 을 알 고 있다.그래서 이해 하기 어렵 지 않 을 것 입 니 다. 아래 의 몇 개의 파일 만 돌아 다 니 는 것 이 아 닙 니 다.
그래서?그대
헤더 파일 사용
헤더 파일 경 로 를 지정 해 야 합 니 다.
#include
$QTDIR/include/QtCore
#include
$QTDIR/include
어떤 사람들 은 \ # include < QtCore > 라 는 쓰 기 를 좋아 하 는데, 이것 은 헤더 파일 이 어디 에 있 습 니까?그것 의 전체 경 로 는
$QTDIR/include/QtCore/QtCore
이와 유사 하 다.헤더 파일 사용
헤더 파일 경 로 를 지정 해 야 합 니 다.
#include
$QTDIR/include/QtCore
#include
$QTDIR/include/QtGui
#include
$QTDIR/include/QtScript
...
...
잘 모 르 겠 어 요. 눈치 채 셨 어 요?하면, 만약, 만약... #include
경로 가 간단 한데 라 이브 러 리 는 요?
windows 에서 MSVC 로 컴 파일 된 Qt4 를 예 로 들 면:
qmake 는 qmake 로 우리 앞의 예 를 관리 하려 면 간단 한. pro 파일
CONFIG += console
QT -= gui
SOURCES += main.cpp
만 써 야 합 니 다. 그러면 qmake 는 어떤 헤더 파일 과 라 이브 러 리 파일 이 필요 한 지 어떻게 알 수 있 습 니까?사실 여기 서 두 줄 의 코드 (기본 값 이기 때문에 쓰 지 않 아 도 되 지만 우리 가 이 예 를 이해 하 는 데 중요 하 다) CONFIG += qt
QT += core
를 생략 했 습 니 다. 그러면 이 물건 들 은 어떻게 앞의 물건 과 연결 합 니까?우선 CONFIG += qt
최종 포함:헤더 파일 경로
$QTDIR/include
라 이브 러 리 파일 경로
$QTDIR/lib
그 다음
QT += core
은 Qt 와 관련 된 경 로 를 더욱 세분 화 할 것 이다.헤더 파일 경로 중
$QTDIR/include/QtCore
필요 한 라 이브 러 리 연결
QtCore4.lib
미리 처 리 된 매크로 를 컴 파일 합 니 다.
QT_CORE_LIB
보 세 요. 현재 헤더 파일 경로 와 라 이브 러 리 파일 이 있 습 니 다. 그리고 헤더 파일 을 QString 으로 쓰 든!QtCore / QString 모두 찾 을 수 있 습 니 다.다시. pro 파일 에 있 기 때문에
이것 은 이 점 을 더욱 숨 기 게 한다. 예 를 들 어 우리 가 프로그램 에서
#include <QFtp>
...
QFtp xxx;
...
을 사용 했다 면 우 리 는 필요 할 것 이다.헤더 파일 경로 지정
$QTDIR/include/QtNetwork
연결 할 라 이브 러 리 지정
QtNetWork4.lib
이 두 가 지 는 바로 아래 의 문구 가 한 것 이다.
QT += network
하하 하, 다음 문제 의 답 을 발 견 했 나?
헤더 파일 경로 가 없 기 때문에 컴 파일 할 때 헤더 파일 을 찾 을 수 없습니다.(단, QtNetWork / QFtp 라 고 쓰 면 문제 가 되 지 않 습 니 다.)
QT 를 수정 하 는 것 은 가장 일반적인 것 입 니 다. QtCore, QtGui, QtNetWork 등 입 니 다.
코어 모듈 사용
QT += core
Gui 모듈 사용
QT += gui
NetWork 모듈 사용
QT+=network
CONFIG 를 수정 합 니 다. 예 를 들 어 QAx Container 모듈
CONFIG += qaxcontainer
두 가 지 는 모두 QtTest 모듈 과 같 습 니 다. 우 리 는 CONFIG += qtestlib
을 사용 할 수도 있 고 QT += testlib
두 가 지 를 사용 할 수도 있 습 니 다. 두 가 지 는 후자 가 QT 를 정의 할 것 입 니 다.TESTLIB_LIB 이렇게 매크로 (QT + = core gui 등 효과 와 같 음) 전 자 는 이 매크로 를 정의 하지 않 습 니 다.이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
tar 용법텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.