2012-04-05 82 views
15

爲了簡化情況,假設有2個文件:core.cppmain.cpp如何使用Qt構建靜態庫和可執行文件?

core.cpp包含程序的功能,main.cpp包含基本的main()實現。

我想QT(學會使用qmake和的.pro文件)

  • 第一內建core.a然後
  • 使用和main.cpp建立main.exe

如何在qmake文件中設置它?

回答

26

文件系統佈局:

MyProject 
|_ myproject.pro 
|_ core 
    |_ core.cpp 
    |_ core.h 
    |_ core.pro 
|_ app 
    |_ main.cpp 
    |_ app.pro 

myproject.pro:

TEMPLATE = subdirs 
CONFIG += ordered 
SUBDIRS = core \ 
      app 
app.depends = core 

core.pro:

TEMPLATE = lib 
CONFIG += staticlib 
HEADERS = core.h 
SOURCES = core.cpp 

app.pro:

TEMPLATE = app 
SOURCES = main.cpp 
LIBS += ../core/libcore.a 
TARGET = ../app-exe # move executable one dire up 
+0

Nitpick:按下播放結果:'無法啓動程序。路徑或權限錯誤?'。我該如何解決? (它顯然是在尋找基礎目錄中的可執行文件) – chacham15 2012-04-05 22:38:34

+0

只需將內置的可執行文件移動到TARGET var即可,查看更新後的答案 – Masci 2012-04-06 07:34:11

+1

'app.pro'中也需要'INCLUDEPATH + = ../ core /',對? – 2016-05-31 04:35:17