我在Ubuntu 11.04中使用C++,OpenCV 2.2和g ++編寫了一個小項目。我需要創建一個庫(.so會更好),但我希望它可以在沒有安裝OpenCV的情況下在另一臺計算機上運行。
我試過使用g ++的-shared和-fPIC標誌來構建動態庫,並將OpenCV .so庫複製到工作目錄中。其實我只需要core和feature2d,但實際上它需要很多其他庫,包括highgui,它也有很多依賴關係。
我試過靜態鏈接,使用-Wl,-Bstatic標誌,但也不成功。 有人遇到同樣的問題嗎?我將不勝感激任何形式的幫助。如何在另一臺計算機(linux)上使用OpenCV運行C++庫?
1
A
回答
3
可以在不依賴系統庫的情況下構建OpenCV。要在Linux上的OpenCV的2.2把所有的依賴,你可以用以下參數運行cmake:
cmake -DWITH_1394=OFF -DWITH_CUDA=OFF -DWITH_EIGEN2=OFF -DWITH_FFMPEG=OFF -DWITH_GSTREAMER=OFF -DWITH_GTK=OFF -DWITH_OPENEXR=OFF -DWITH_PVAPI=OFF -DWITH_QT=OFF -DWITH_TBB=OFF -DWITH_UNICAP=OFF -DWITH_V4L=OFF -DWITH_XINE=OFF -DUSE_IPP=OFF -DOPENCV_BUILD_3RDPARTY_LIBS=ON ..
但在這種情況下,你將不能夠使用許多的功能,形成highgui模塊:
- 視頻讀寫
- 帶攝像頭的工作
- 與GUI工作的所有功能(如imshow)
+0
看來'cv :: imencode'和'cv :: imdecode'也是'highgui'。 –
+0
然而,他們確實可以在沒有系統庫的情況下使用多種格式 –
相關問題
- 1. 在另一臺計算機上使用Access數據庫與C#
- 2. 在另一臺計算機上運行我的c#exe文件?
- 3. 如何在另一臺計算機上運行進程.net
- 4. 如何在另一臺計算機上運行調試文件?
- 5. 無法在一臺計算機上運行jar,但可以在另一臺計算機上運行
- 6. PHP標題(「位置:...」)在一臺計算機上運行,而不是在另一臺計算機上運行
- 7. 在同一臺計算機上運行多個版本的OpenCV
- 8. 如何在一臺計算機上運行MATLAB中另一臺計算機上的MATLAB [Windows]
- 9. 在計算機中運行jar java.lang.UnsatisfiedLinkError在另一臺計算機中運行lwjgl.dll
- 10. 如何從C++代碼在另一臺計算機上運行程序?
- 11. 將預製OpenCV安裝移至另一臺Linux計算機
- 12. 如何編譯Linux C程序在另一臺Linux機器上運行?
- 13. 在一臺計算機上寫入python代碼並自動在另一臺計算機上運行它
- 14. 在另一臺計算機上運行我的WinForms數據庫應用程序
- 15. Wxwidgets在另一臺計算機上運行二進制程序
- 16. 在另一臺計算機上運行exe文件
- 17. 在另一臺計算機上運行a.out
- 18. Selenium Grid不在另一臺計算機上運行Chrome
- 19. 在一臺計算機上使用Powershell在另一臺計算機上執行PowerShell腳本
- 20. c#Windows應用程序無法在另一臺計算機上運行
- 21. 如何使用linux訪問另一臺計算機上的命令提示符
- 22. 如何在另一臺計算機上運行在NetBeans中編寫的項目?
- 23. 在多臺計算機上運行Git
- 24. 如何限制只在一臺計算機上運行dll?
- 25. 如何在一臺計算機上運行雙JVM
- 26. 如何在另一臺計算機上使用SQL Server數據庫運行Windows窗體應用程序
- 27. 如何測試另一臺計算機上VS C#程序
- 28. SQL如何檢查服務正在運行另一臺計算機上
- 29. 如何在本地網絡的一臺計算機上運行業務邏輯,並在另一臺計算機上運行GUI?
- 30. 如何使用VB.NET在另一臺計算機上執行批處理文件?
林靜國王將不會很有用,因爲highgui依賴於幾個系統庫。如果你不需要相機或視頻閱讀/寫作,那麼你可以關閉大部分依賴關係。如果這對你有效,那麼我可以發佈一個cmake命令來構建OpenCV,而不需要視頻支持。 –
是的,我根本不需要在這個項目中使用highgui,但是它被OpenCV的一個libriries使用。非常感謝,我會嘗試你的解決方案。 – Gregory