我想創建一個使用OpenCV的C++應用程序,它運行在服務器上。爲此,我需要在我的服務器上編譯C++應用程序。但是,我怎樣才能讓我的OpenCV庫(和其他庫)在服務器上?還是有另一種方法讓我的C++應用程序在我的服務器上運行?即在我自己的計算機上而不是在服務器上編譯。在服務器上編譯OpenCV/C++應用程序
我希望你能幫助我!謝謝!
我想創建一個使用OpenCV的C++應用程序,它運行在服務器上。爲此,我需要在我的服務器上編譯C++應用程序。但是,我怎樣才能讓我的OpenCV庫(和其他庫)在服務器上?還是有另一種方法讓我的C++應用程序在我的服務器上運行?即在我自己的計算機上而不是在服務器上編譯。在服務器上編譯OpenCV/C++應用程序
我希望你能幫助我!謝謝!
如果服務器是相同的架構(例如intel x86 32位或者兩個PowerPC),您應該可以在自己的機器上編譯並在服務器上運行它。
此外,正如下面的jlengrand所述,您可以使用交叉編譯器爲您的計算機設置幾乎任何目標體系結構。基本上可以讓你輸入一行命令來設置你的編譯環境,然後當你調用g ++或者你正在使用的任何東西時,它將爲交叉編譯器的架構創建。
我不知道很多關於OpenCV的,但只要你有它設置爲「靜態鏈接」圖書館那麼他們應該是你生成的可執行文件的一部分。因此,可執行文件將具有所有庫,並且可以在任何計算機上使用計算機的體系結構運行。
當心動態鏈接因爲這意味着自己必須是存在並且可定位在服務器上,當您運行可執行文件,但(動態鏈接裝置共享庫,在那裏他們沒有的部分庫可執行並且必須單獨提供,而動態鏈接實際上更好,因爲可以共享和更新,因此部署更加複雜)。
我也投票支持在您的計算機上編譯並運行在服務器上。您甚至可以使用專用編譯器編譯不同的體系結構。我過去爲ARM平臺做過。你只需要將文件複製到你的服務器,就像一個魅力:) – jlengrand
這是一個很好的觀點。你可以交叉編譯幾乎任何東西,人們在使用嵌入式系統時總是這樣做。 –
謝謝你的回答!這聽起來比我想象的更加可行。 – Rogier