2010-09-28 42 views
8

Tôi đang làm việc trên một ++ Dự án cross-platform C với 8 người khác trong đó sử dụng các thư viện sau:Thiết lập một ++ Dự án C cross-platform trong Eclipse với các thư viện cross-platform

  • OpenCV Thư viện
  • Boost Thư viện C++

Dự án được đặt nền tảng để tất cả người dùng đồng ý không sử dụng mã dành riêng cho nền tảng và để giữ mọi thứ càng đơn giản càng tốt, tất cả người dùng sẽ sử dụng Eclipse làm IDE của họ. Tuy nhiên, một số sẽ sử dụng Eclipse cho Windows trong khi một số khác sẽ sử dụng Eclipse cho Linux.

Vì dự án sẽ được lưu trữ trên SVN, chúng tôi muốn tránh xung đột với các tệp cấu hình khác nhau (như tạo tệp, tệp dự án eclipse, v.v.) được chia sẻ. Chúng tôi cũng muốn chia sẻ càng nhiều tệp cấu hình càng tốt thông qua SVN, để giữ cấu hình càng đơn giản càng tốt. Giả sử rằng tất cả người dùng đã cấu hình đúng các biến hệ thống và cài đặt các công cụ xây dựng cần thiết (chẳng hạn như make, cmake, vv) và đã định cấu hình các cài đặt Eclipse của họ được định cấu hình đúng (nhưng không phải cài đặt dành riêng cho dự án).

Cách cấu hình dự án một lần và tệp cấu hình để chia sẻ trên kho, để người dùng Windows và Linux có thể biên dịch nó mà không sửa đổi tệp cấu hình được truy xuất từ ​​kho SVN?

(Tôi không tìm kiếm giải pháp hoàn chỉnh dành riêng cho 2 thư viện mà tôi đã đề cập, vì vậy tôi sẽ đánh giá cao cách giải thích từng bước chung để cho phép tôi dễ dàng thêm thư viện khác).

+0

Tôi đã xem xét việc sử dụng Eclipse theo cách này và gặp phải một số vấn đề.Để bắt đầu, tôi sẽ thử và tạo các cấu hình DEBUG/RELEASE hoàn toàn riêng biệt cho mỗi nền tảng và hoàn toàn có thể, dính vào cùng một phiên bản Eclipse và CDT chính xác! Bạn sẽ chỉ phải sử dụng SVN để chia sẻ mã và giữ cho các cấu hình xây dựng Eclipse được duy trì cục bộ. Tôi quan tâm để biết làm thế nào bạn nhận được trên! –

+1

Hiện tại tôi đang điều tra thiết lập một dự án open-cv đa nền tảng với Eclipse và SVN. Tôi sẽ được quan tâm để biết làm thế nào bạn có trên? Sẽ thật tuyệt nếu bạn đang ở vị trí để trả lời câu hỏi của riêng bạn dựa trên kinh nghiệm của bạn. – volting

Trả lời

0

thảo luận chung:

bạn sẽ cần phải cài đặt Cygwin hay cái gì tương tự như nó để làm cho GNU Autotools toolchain sẵn cho Eclipse trên Windows: How to deal with Eclipse CDT+Cygwin?

Khi toolchain của bạn, Eclipse, với CDT và SVN nối đã sẵn sàng trên dev của bạn máy elopment, đi qua các bước sau.

  1. mở Eclipse và chuyển sang CDT: Nhấp vào Window-> Open Perspective-> Khác ... và chọn C/C++
  2. Chọn: Eclipse-> File-> New-> C++ Dự án
  3. Dự án tên: xem
  4. Chọn: dự án loại-> GNU Autotools-> Hello World C++ dự án Autotools
  5. bấm: Tiếp
  6. bấm: Kết thúc
  7. kích chuột phải vào trong Project Explorer: viewer-> dự án reconfigure
  8. Bấm: Console-> Hiển thị menu phụ Console đã chọn -> # CDT Global Build Console. Nếu đầu ra "autoreconf -i" là danh nghĩa, hãy chuyển sang bước 9. Nếu Console báo cáo: sh: autoreconf: không tìm thấy lệnh, sau đó thêm đường dẫn đến lệnh autoreconf vào Project Build Environment:
    1. Nhấp chuột phải vào Project Explorer: người xem-> Properties-> C/C++ Build-> Environment-> Add ...
    2. Tên: PATH
    3. Value: path_to_autoreconf: $ {env_var: PATH}
    4. Bấm: OK
    5. Bấm: Thoa
    6. Quay trở lại bước 8.
  9. Double-click: Project Explorer-> viewer-> src-> viewer.cpp
  10. Thêm một số mã:

    bao gồm <opencv/cv.h>

    bao gồm <opencv/highgui.h>

    bao gồm <cassert>

    int main (int argc, char * argv []) {

    assert (argc > 1);

    CvMat * img = cvLoadImageM (argv 1);

    cvNamedWindow (" Ảnh ", CV_WINDOW_AUTOSIZE);

    cvShowImage (" Ảnh ", img);

    cvWaitKey (0);

    trả về 0;

    }

  11. đúp vào: Dự án Explorer-> viewer-> configure.ac và nhập đoạn mã sau dưới 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. bấm đúp: Dự án Explorer-> viewer-> src -> Makefile.am và nhập đoạn mã sau. >

    bin_PROGRAMS = xem

    viewer_SOURCES = openCvFocusIssue.cpp

    viewer_LDFLAGS = -lboost_regex @ BOOST_LIB_SUFFIX @ -lopencv_core -lopencv_highgui

  13. Lặp lại bước 8, autoreconf (dự án reconfigure)
  14. Bấm: Dự án Explorer-> xem
  15. dự án xây dựng bằng cách nhấn vào búa trên thanh công cụ. Nếu bạn không thấy búa, Window-> Open Perspective-> Other ... và chọn C/C++. Nếu C/C++ không hiển thị, hãy cài đặt CDT.
  16. Nhấp vào: Project Explorer-> viewer và sau đó Run-> Run, sau đó trong cửa sổ Run As-> Local C/C++, sau đó trong cửa sổ Launch Debug Configuration Selection-> gdb/mi và nhấn enter. Bạn sẽ thấy Hello World.
  17. Thoát Eclipse và điều hướng đến thư mục dự án trình xem.
  18. Trên dòng lệnh, vấn đề làm cho quận
  19. Đảm bảo bạn có một người xem 1.0.tar.gz hoặc tương tự đặt tên tập tin, và sau đó loại bỏ nó: rm xem-1.0.tar.gz
  20. Trên dòng lệnh , hãy tạo sự sạch sẽ
  21. Trong cùng một vị trí, hãy phát hành làm ô uế.
  22. Điều hướng đến thư mục không gian làm việc có chứa dự án trình xem.
  23. Di chuyển toàn bộ thư mục người xem vào thư mục chứa thanh toán svn bạn muốn đặt dự án người xem vào.
  24. Thay đổi thư mục thành nơi bạn vừa chuyển người xem.
  25. svn thêm trình xem & & svn ci -m "Thêm dự án eclipse-autotool"
  26. Mở nhật thực và đảm bảo rằng bạn đã cài đặt trình kết nối SVN.
  27. Xóa dự án "trình xem" khỏi khung nhìn Project Explorer.
  28. Mở nhật thực và thêm thanh toán kho SVN này vào phối cảnh Nhóm.
  29. Nhập dự án trình xem từ thanh toán kho lưu trữ SVN của bạn.
  30. Chuyển về phối cảnh C/C++ và giải trí.
0

Hai gợi ý:

  • Sử dụng cmake: Tôi yêu công cụ này. Có một chút của một đường cong học tập nhưng nếu bạn nhận được nó đúng tất cả các dự án sẽ bao gồm là các tập tin cmake và khi một người đầu tiên kiểm tra xem chúng chạy cmake để tạo ra của họ makefiles (hoặc VC + + dự án tập tin, vv) với tất cả các quy tắc khác nhau cho linux hoặc windows một có thể cần.

hoặc

  • Kiểm tra trong một cấu hình cơ bản cho dự án, sau đó thêm những configs để git/svn bỏ qua vì vậy không ai kiểm tra chúng trong một lần nữa, sau đó khi bạn kiểm lần đầu tiên bạn phải chạy cấu hình của bạn nhưng sau đó nó sẽ không bị ghi đè.
Các vấn đề liên quan