2010-09-28 178 views
8

我與其他8人一個跨平臺的C++項目的工作,它使用以下庫項目:建立一個跨平臺的C++在Eclipse具有跨平臺庫

  • OpenCV庫
  • 加速C++庫

該項目旨在跨平臺,因此所有用戶都同意不使用特定於平臺的代碼,並且爲了儘可能簡單,所有用戶都將使用Eclipse作爲他們的IDE。但是,有些將使用Eclipse for Windows,而其他則將使用Eclipse for Linux。

由於該項目將託管在SVN上,我們希望避免與共享的不同配置文件(如make文件,eclipse項目文件等)發生衝突。我們還希望通過SVN儘可能多地分享配置文件,以儘可能簡化配置。假設所有用戶都已正確配置系統變量並安裝了所需的構建工具(如make,cmake等),並且已經正確配置了他們的Eclipse設置(但不是項目特定的設置)。

如何配置項目一次以及哪些配置文件要共享到存儲庫,以便Windows和Linux用戶都可以編譯它,而無需修改從SVN存儲庫檢索的配置文件?我不是在尋找專門爲我提到的那兩個庫工作的完整解決方案,所以我將不勝感激一般的分步說明,這將使我能夠輕鬆添加另一個庫。)

+0

我已經研究過使用Eclipse這種方式,並碰到了不少問題。首先,我會嘗試在每個平臺上完全獨立的DEBUG/RELEASE配置,並儘可能堅持完全相同的Eclipse和CDT版本!您最終只能使用SVN來共享代碼,並保持本地維護的Eclipse構建配置。我很想知道你怎麼樣! – 2011-05-25 04:58:24

+1

我目前正在調查使用Eclipse和SVN建立一個跨平臺的open-cv項目。我有興趣知道你是怎麼了?如果你現在可以根據你的經驗回答你自己的問題,那將是非常棒的。 – volting 2012-09-14 15:41:37

回答

0

一般性討論:

您將需要安裝Cygwin或類似於它使GNU Autotools的工具鏈可到Eclipse在Windows上的東西: How to deal with Eclipse CDT+Cygwin?

一旦你的工具鏈,Eclipse中,與CDT和SVN連接器準備好在你的開發應用機器,請按照以下步驟操作。

  1. 打開Eclipse,並切換到CDT:單擊窗口 - >打開Perspective->其他...並選擇C/C++
  2. 選擇:Eclipse的>文件 - >新建> C++項目
  3. 項目名稱:觀衆
  4. 選擇:項目類型 - > GNU Autotools->的Hello World C++自動工具項目
  5. 點擊:下一步
  6. 點擊:完成
  7. 在項目資源管理器右鍵單擊:依查看器>重新配置項目
  8. Click:Console-> Display Selected Console子菜單 - >#CDT Global Build Console。如果「autoreconf -i」輸出是標稱的,請繼續步驟9.如果Console報告:sh:autoreconf:命令未找到,則將路徑添加到項目構建環境的autoreconf命令中:
    1. 右鍵單擊Project Explorer:viewer-> Properties-> C/C++ Build-> Environment-> Add ...
    2. 名稱:PATH
    3. 價值:path_to_autoreconf:$ {ENV_VAR:PATH}
    4. 點擊:OK
    5. 點擊:應用
    6. 回到步驟8
  9. 雙擊: Project Explorer-> viewer-> src-> viewer.cpp
  10. 添加一些代碼:

    包括<的OpenCV/cv.h >

    包括<的OpenCV/highgui.h >

    包括<了cassert >

    INT主(INT的argc,字符* argv的[]){

    斷言( argc > 1);

    CvMat * img = cvLoadImageM(argv 1);

    cvNamedWindow("圖片",CV_WINDOW_AUTOSIZE);

    cvShowImage("圖片",img);

    cvWaitKey(0);

    return 0;

    }

  11. 雙擊:項目Explorer的>依查看器> configure.ac並在下面輸入AC_PROG_CXX下面的代碼。

    AC_CHECK_LIB([opencv_core],[cvSetZero],[],[])

    AC_CHECK_LIB([opencv_highgui],[cvShowImage],[],[])

    AC_CHECK_LIB([boost_regex -mt],[regexecA],[BOOST_LIB_SUFFIX = 「 - MT」],[BOOST_LIB_SUFFIX = 「」])

    AC_SUBST(BOOST_LIB_SUFFIX)

  12. 雙擊:項目Explorer的>查看器而> SRC - > Makefile.am並輸入下面的代碼。 >

    bin_PROGRAMS =觀察者

    viewer_SOURCES = openCvFocusIssue。CPP

    viewer_LDFLAGS = -lboost_regex @ BOOST_LIB_SUFFIX @ -lopencv_core -lopencv_highgui

  13. 重複步驟8,autoreconf(重新配置項目)
  14. 點擊:點擊錘子項目Explorer的>觀衆
  15. 構建項目在工具欄中。如果您沒有看到錘子,請打開Window-> Open Perspective-> Other ...並選擇C/C++。如果C/C++不顯示,請安裝CDT。
  16. 點擊:Project Explorer-> viewer,然後運行 ​​- >運行,然後在運行方式窗口 - >本地C/C++應用程序,然後在啓動調試配置選擇窗口 - > gdb/mi並按回車。你應該看到Hello World。
  17. 退出Eclipse並導航到查看器項目目錄。
  18. 在命令行中,使DIST
  19. 確保你有一個觀衆-1.0.tar.gz中或類似命名的文件,然後將其刪除:RM觀衆-1.0.tar.gz中
  20. 在命令行,問題做清潔
  21. 在同一地點,發出make distclean。
  22. 導航到包含查看器項目的工作空間目錄。
  23. 將整個查看器目錄移至包含要將查看器項目放入的svn結帳的目錄。
  24. 將目錄更改爲剛剛移動查看器的位置。
  25. SVN增加觀衆& &的svn詞-m「加入Eclipse的autotool項目」
  26. 打開蝕,並確保您安裝了SVN連接器。
  27. 從Project Explorer視圖中刪除「查看器」項目。
  28. 打開eclipse並將此SVN存儲庫結帳添加到團隊透視圖。
  29. 從SVN資料庫結帳導入查看器項目。
  30. 切換回C/C++透視圖並玩得開心。
0

兩個建議:

  • 使用cmake的:我喜歡這個工具。有一點點的學習曲線,但如果你把它正確的話,所有的項目將包括cmake文件 ,當一個人第一次檢查出它們時,他們運行cmake生成 他們的makefiles(或VC++項目文件等)可能需要的所有針對linux或windows的不同規則一個 。

  • 入住該項目的基本配置,那麼這些CONFIGS添加到GIT/SVN忽略所以從來沒有人檢查他們再次,那麼當你結帳的第一次必須讓你的配置運行,但之後它不會被覆蓋。