2015-12-17 18 views
18

Tôi đang cố gắng để có được đầu của tôi xung quanh một số khái niệm cơ bản, nhưng tôi dường như không thể tìm ra chúng.Cài đặt Thư viện C++ trên OS X

Tôi thực sự bối rối về ý nghĩa của việc cài đặt (tôi nghĩ chúng được gọi là thư viện) cho C++. Tôi đang cố gắng để cài đặt OpenCV, nhưng tôi không biết những gì cần phải xảy ra cho nó được cài đặt, làm thế nào để kiểm tra, hoặc những gì thực sự OpenCV là (Có phải là một thư viện, khuôn khổ, cái gì khác?).

Hiểu biết của tôi là OpenCV (và các thư viện/khung công tác khác) được phân phối như chỉ mã nguồn để có thể làm việc trên nhiều nền tảng. Sau đó, sau khi bạn tải xuống, bạn phải xây dựng nó (tôi không biết xây dựng có nghĩa là gì), và sau đó liên kết trình biên dịch của bạn với nó để nó có thể truy cập các tệp? Tôi không biết làm thế nào bất kỳ điều này sẽ được thực hiện, hoặc thực sự những gì điều này có nghĩa. Tôi nghĩ rằng rất nhiều điều này được thực hiện bởi CMake, nhưng tôi không biết CMake thực sự làm gì, bạn sẽ sử dụng nó như thế nào, hoặc cách bạn sẽ sử dụng thư viện/khung công tác trong mã của bạn. Ngoài ra, các thư viện như OpenCV sẽ được cài đặt ở đâu, làm thế nào để clang (hoặc bất kỳ trình biên dịch/liên kết nào khác) biết nơi tìm chúng, và loại tệp nào sẽ là (.a, .dylib, .cpp, .hpp, executables , hoặc một bộ sưu tập của tất cả mọi thứ)? Cấu trúc này có cụ thể với C++ và OS X hay nó phổ biến hơn không?

Tôi không tìm kiếm hướng dẫn về cách cài đặt OpenCV hoặc các thư viện khác, nhưng thay vào đó, tôi cố gắng tìm hiểu cách thực sự hoạt động, vì vậy tôi sẽ không cần hướng dẫn trong tương lai.

+2

Có rất nhiều câu hỏi của bạn: bạn phải tìm hiểu cách biên dịch và liên kết mã C++, cách sử dụng thư viện của bên thứ ba với C++ và những công cụ xây dựng như 'cmake' là gì. Các khái niệm chung áp dụng cho C++ bất kể việc triển khai hay nền tảng. Sử dụng một IDE như XCode hoặc Eclipse-CDT hoặc Visual Studio sẽ có rất nhiều chi tiết cấp thấp hơn (bạn cấu hình một số cài đặt trong GUI và các công cụ thực hiện phần còn lại), nhưng câu hỏi của bạn rất rộng và khó trả lời mà không cần biết trình độ C++ của bạn. – birryree

+0

Tôi khuyên bạn nên bắt đầu bằng cách viết một ứng dụng 'hello world' đơn giản bằng ngôn ngữ mà bạn muốn sử dụng OpenCV và nền tảng mà bạn định sử dụng. Tiếp theo đọc chi tiết về cách thức hoạt động. Điều chính mà bạn phải biết để làm sáng tỏ bí ẩn là điều này; các chương trình được biên dịch thành từng phần riêng biệt. Các phần riêng lẻ được kết hợp thành một ứng dụng bằng quá trình 'liên kết'. Sử dụng những thứ như OpenCV yêu cầu bạn liên kết các phần của chương trình với các bộ phận của người khác (như OpenCV). –

+0

Cảm ơn bạn đã phản hồi nhanh. Tôi đã sử dụng thư viện của bên thứ 3 thành công với C++ trong quá khứ, nhưng tôi không biết điều gì đang diễn ra "dưới mui xe" bởi vì những thứ như pkg-config đã thực hiện công việc bẩn thỉu đối với tôi. Tôi chưa bao giờ sử dụng một IDE với C++ vì chúng có vẻ khó hiểu hơn với tôi như một người mới bắt đầu hơn là sử dụng một trình soạn thảo văn bản và học những gì IDE đang làm. Vấn đề lớn nhất của tôi cho đến nay là tất cả các tài nguyên tôi đã tìm thấy không thảo luận về những gì đang diễn ra ở mức độ thấp, và kết quả là tôi không biết cách mở rộng các chương trình hello world đơn giản thành những thứ lớn hơn và hữu ích hơn. –

Trả lời

35

Trước khi bạn có thể làm bất kỳ C/C++ công việc phát triển trên một máy Mac, bạn cần phải đi đến App Store và tải Xcode miễn phí - đó là của Apple IDE - Môi trường phát triển tích hợp . Nếu không có Xcode, bạn sẽ không có trình biên dịch (ví dụ: clang hoặc gcc hoặc g++) và không có công cụ xây dựng nào, (ví dụ: make).

Cài đặt Xcode

Nếu bạn là hoàn toàn mới với máy Mac, App Store trông như thế này:

enter image description here

Xcode trông như thế này:

enter image description here

Install Command Line Công cụ

Tiếp theo, bạn phải cài đặt các công cụ dòng lệnh Xcode, vì vậy bắt đầu một Terminal - bằng cách nhấn + SPACE và bắt đầu gõ Terminal và khi nó đoán một cách chính xác, chỉ cần nhấn Nhập/Trả lại. Sao chép và dán thông tin sau vào Terminal và nhấn Enter/Return.

xcode-select --install 

Trên đây được gọi là một "Spotlight Search" và là cách dễ nhất để tìm bất cứ điều gì trên máy Mac.

Cài đặt homebrew

Sau đó, nếu bạn muốn cài đặt OpenCV trên máy Mac, cài đặt một trình quản lý gói như homebrew mà là một vấn đề sao chép và dán một dòng duy nhất từ ​​homebrew website vào Terminal của bạn. Tôi sẽ không hiển thị các dòng ở đây trong trường hợp nó bao giờ thay đổi và ai đó nhìn vào điều này trong một vài năm, nhưng nó rất dễ dàng để xem nếu bạn đi đến liên kết ở trên.

Find Gói

Sau đó, bạn có thể tìm thấy bất kỳ gói bạn muốn với:

brew search opencv # Look for packages called "opencv" 

hoặc

brew search boost  # Look for "boost" libraries 

Cài đặt OpenCV

Vì vậy, ví một vani (không có tùy chọn đặc biệt) lắp đặt và xây dựng của OpenCV làm điều này:

brew install opencv 

Di Gói

Bạn sau này có thể loại bỏ bất kỳ gói bạn không còn muốn với:

brew rm opencv 

Cập nhật gói

Bạn cũng có thể ngày tất cả các gói cài đặt với:

brew update && brew upgrade && brew cleanup 

Xây dựng một dự án

Một khi bạn đã có nó được cài đặt, bạn có thể bắt đầu soạn thảo và xây dựng dự án của riêng bạn với một lệnh thực sự đơn giản như:

g++ $(pkg-config --cflags --libs opencv) process.cpp -o process 

Sau đó, bạn có thể tiếp tục sử dụng Xcode IDE sau này nếu bạn muốn một khi bạn bắt đầu.

Xây dựng với Xcode

Một khi bạn đã nhận được bắt đầu với biên soạn cơ bản, bạn có thể muốn bắt đầu sử dụng Xcode để chỉnh sửa chương trình của bạn, để làm điều đó, bạn phải nói Xcode nơi các tập tin tiêu đề đang có và cũng là nơi các thư viện và thư viện nào để liên kết. Điều này sẽ khác với phiên bản OpenCV của bạn, nhưng bạn sẽ cần phải thay đổi các địa điểm được đánh dấu trong hai sơ đồ dưới đây. Bạn sẽ tìm thấy những điều này một cách dễ dàng nếu bạn nhấp vào chúng theo thứ tự - khu vực màu xanh lá cây đầu tiên, sau đó là màu vàng, sau đó là màu xanh, sau đó là màu đỏ.

enter image description here

enter image description here

Các thông tin thực tế mà sẽ cần phải đi trong các lĩnh vực thiết lập Xcode Tôi đã đánh dấu trên có thể được tìm thấy bằng cách chạy lệnh cùng pkg-config tôi đề nghị trong phần trước. Vì vậy, chạy:

pkg-config --cflags opencv 

để có được vị trí của tiêu đề (bao gồm) tập tin, và sau đó chạy

pkg-config --libs opencv 

để có được những thông tin mà bạn cần phải điền vào cho các mối liên kết trong Xcode.

+0

Cảm ơn bạn đã hướng dẫn. Tôi chắc chắn sẽ thử Xcode như một IDE. Tôi đã sử dụng nó trong quá khứ, nhưng chỉ là một trình soạn thảo văn bản bởi vì tôi đã hy vọng để tìm hiểu làm thế nào mã được xây dựng từ mặt đất lên, nhưng có lẽ đó là không thực tế. Tôi thực sự đang tìm kiếm thông tin về cách quá trình cài đặt hoạt động, và những gì thực sự là một gói như opencv là (nó là một thư viện, khuôn khổ, hoặc cái gì khác?). –

+0

Xin chào, cảm ơn câu trả lời thực sự chi tiết về điều đó. Bạn có nhớ cho tôi biết tại sao pkg-config --cflags opencv VÀ pkg-config --libs opencv không hoạt động cho thư viện FFMPEG? – cmario

+0

'pkg-config ... opencv' sẽ cho bạn biết các cờ/cài đặt để xây dựng gói' opencv'. Nếu bạn muốn xây dựng một gói khác, chẳng hạn như 'ffmpeg', bạn sẽ cần phải tìm gói (có thể bằng cách sử dụng' pkg-config --list-all') và sau đó, khi bạn tìm thấy tên gói bạn muốn, (ví dụ 'ffmpeg'), bạn có thể sử dụng' pkg-config --cflags --libs ffmpeg' hoặc tương tự. –

Các vấn đề liên quan