在一家公司,我們有一個開發人員服務器,其中包含所有必要的編碼內容。除此之外,還有一個Jenkins CI工具正在安裝和運行。在沒有X的情況下在Linux上編譯Qt應用程序
現在我想配置它能夠構建Qt5.5應用程序。問題是服務器上沒有X11 - 只有控制檯訪問。
是否有可能在這樣的平臺上構建Qt應用程序?由於缺乏GUI,我甚至無法安裝Qt5.5框架。但也許我可以以某種方式只安裝所需的庫和qmake?
在一家公司,我們有一個開發人員服務器,其中包含所有必要的編碼內容。除此之外,還有一個Jenkins CI工具正在安裝和運行。在沒有X的情況下在Linux上編譯Qt應用程序
現在我想配置它能夠構建Qt5.5應用程序。問題是服務器上沒有X11 - 只有控制檯訪問。
是否有可能在這樣的平臺上構建Qt應用程序?由於缺乏GUI,我甚至無法安裝Qt5.5框架。但也許我可以以某種方式只安裝所需的庫和qmake?
是的,沒關係(引用您的問題)「在類似平臺上構建Qt應用程序」,「僅安裝必需的庫和qmake」。
安裝庫不會拖動一個完整的GUI環境 - 否則你的發行版的包依賴系統是嚴重的缺陷。
你沒有說明什麼,也很重要,如果你想能夠運行在沒有GUI的平臺上的Qt應用程序(與「僅用於jenkins構建」相反)。
如果是這樣的話,這仍然是可能的,只安裝Qt核心:您將擁有Qt的對象框架的所有優點,而不需要GUI部件。這將是一個Qt控制檯應用程序,這是完全可行和合法的。
你不告訴我們什麼是本機上安裝的分佈,但例如在我的Debian這是libqt5core5a - Qt 5 core module
包:
$的apt-cache顯示libqt5core5a
...
取決於:libc6(> = 2.15),libgcc1(> = 1:4.1.1),libglib2.0-0(> = 2.22.0),libicu55(> = 55.1-1〜),libpcre16-3, libstdC++ 6(> = 4.9),zlib1g(> = 1:1.1.4)
...
描述-en:Qt 5核心模塊Qt是一個跨平臺的C++應用程序框架。 Qt的主要功能是提供標準GUI功能的豐富組件。
QtCore模塊包含核心非GUI功能。
...
正如你可以看到:
這取決於相關的任何GUI。
這隻包含核心非GUI功能。
感謝@jbm,是明確的:我的開發服務器在CentOS 6上運行沒有X服務器安裝,並且我不想運行我的Qt應用程序,只編譯它(qmake; make all;)。但我需要編譯所有圖形的東西,完整的應用程序。在Centos存儲庫中,我們有很老的qt包。是否可以在控制檯模式下從官方網站包安裝最新的Qt5.5,而無需安裝X服務器? – crooveck
「在Centos倉庫中,我們有非常古老的qt軟件包......是否可以在控制檯模式下從官方網站軟件包安裝最新的Qt5.5?」我不知道。但是,這裏的根本問題似乎是你的發行版比你的應用程序需求太舊了:至少,這個jenkins服務器應該能夠像開發者在他的工作站上那樣構建你的應用程序。如果情況並非如此,那麼您有一個問題:這個詹金斯的構建環境並不代表您的開發站。這並不好,首先與詹金斯的目標相矛盾。 – jbm
「這個jenkins服務器應該能夠像開發人員在他的工作站上那樣構建你的應用程序」,我的意思是使用開發人員在他的工作站上的* exact *相同的庫。否則,jenkins的「構建好/構建失敗」報告的價值是什麼? – jbm
每一個Linux發行版有一個命令行工具來安裝軟件,那麼你可以安裝QT5和編譯軟件 – gengisdave