Superkkt Blog

QT에서는 하나의 프로젝트(.pro) 내에서 여러 개의 바이너리를 생성하는게 autotools 보다는 조금 복잡하다.

우선 아래와 같이 두 개의 바이너리에 대한 mda.pro 파일을 만들어준다. 여기서는 mda와 mda_retrain 두 개의 바이너리가 생성된다. 각각의 바이너리는 서로 다른 라이브러리와 소스파일로 구성된다.

mda {
    QT += core sql network
    QT -= gui
    TARGET = mda
    CONFIG += console

    SOURCES += main.cpp \
               syslog_logger.cpp \
               mda.cpp \
               archiver.cpp \
               parser.cpp \
               utils.cpp \
               spf.cpp \
               resolver.cpp \
               spamfilter.cpp

    HEADERS += logger.h \
               syslog_logger.h \
               mda.h \
               archiver.h \
               parser.h \
               utils.h \
               spf.h \
               resolver.h \
               spamfilter.h

    INCLUDEPATH = /usr/local/dspam/include
    LIBS += `pkg-config --libs vmime` -L/usr/local/dspam/lib -lspf2 -lresolv -ldspam
    QMAKE_CXXFLAGS += -g -std=c++0x `pkg-config --cflags vmime`
}

mda_retrain {
    QT += core
    QT -= gui
    TARGET = mda_retrain
    CONFIG += console

    SOURCES += mda_retrain.cpp \
               syslog_logger.cpp

    HEADERS += logger.h \
               syslog_logger.h

    INCLUDEPATH = /usr/local/dspam/include
    LIBS += -L/usr/local/dspam/lib -ldspam
    QMAKE_CXXFLAGS += -g -std=c++0x
}


이제 qmake로 Makefile을 생성할 때 어떤 바이너리를 만들건지 지정해야 한다. 먼저 mda를 만드는 방법을 살펴보자.

$ qmake mda.pro CONFIG+=mda
$ make

mda_retrain 바이너리를 만들려면 CONFIG+= 뒷 부분만 mda_retrain으로 변경해주면 된다.

한번의 make로 만드는 방법도 있는데, 이건 소스코드를 서브 디렉토리로 분할하는 방식을 사용한다. 자세한 내용은 레퍼런스 사이트를 참조한다.


<References>


2011/09/30 11:51 2011/09/30 11:51

trackbacks

trackbacks rss

http://superkkt.com/trackback/729

Leave a Comment