2014-09-24 20 views
9

Tôi đang cố gắng sử dụng CMake để biên dịch một thư viện khác và nó yêu cầu Tăng cường.CMake không thể tìm thấy Boost trên OS X với brew

Tôi đã cài đặt cả CMake và Boost bằng cách sử dụng brew trên OS X 10.10 Yosemite, nhưng CMake từ chối tìm nó. Boost nằm ở /usr/local/Cellar/boost/1.55.0_2

Tôi đã thử những điều sau đây:

  • Thiết -DBoost_DIR-DBOOST_ROOT với đường dẫn ở trên
  • Thiết -DBoost_INCLUDE_DIR-DBOOST_INCLUDEDIR với đường dẫn ở trên + /include
  • Thiết bất kỳ và tất cả trong số các tùy chọn này trong tệp CMakeLists.txt
  • Tự biên soạn bản thân và chỉ các biểu tượng trên vào tòa nhà của riêng mình
  • Thử các giải pháp tương tự cho cùng một vấn đề here, herehere. Câu trả lời duy nhất mà tôi thấy rằng brew được đề cập trên OS X là this one, và giải pháp tương tự không hiệu quả đối với tôi.

Tại sao CMake lại phớt lờ các chỉ dẫn của tôi? :(

Edit:CMake output from -DBoost_DEBUG=ON

+0

Bạn có thể chạy lại cmake với '-DBoost_DEBUG = ON' và đăng đầu ra không? – Fraser

+0

@Fraser Xong, liên kết trong câu hỏi – ttarik

+1

Bạn cũng có thể cung cấp đường dẫn đầy đủ (bao gồm tên tệp) cho thư viện Boost.System của bạn không? – Fraser

Trả lời

7

Tôi tìm thấy một gói homebrew riêng của boost-python Với nó được cài đặt, CMake không tìm Boost:.

brew install boost-python 

mang lại cho tôi

> mkdir build ; (cd build ; cmake ..) 
-- The C compiler identification is AppleClang 6.0.0.6000056 
-- The CXX compiler identification is AppleClang 6.0.0.6000056 
-- Check for working C compiler: /usr/bin/cc 
-- Check for working C compiler: /usr/bin/cc -- works 
-- Detecting C compiler ABI info 
-- Detecting C compiler ABI info - done 
-- Check for working CXX compiler: /usr/bin/c++ 
-- Check for working CXX compiler: /usr/bin/c++ -- works 
-- Detecting CXX compiler ABI info 
-- Detecting CXX compiler ABI info - done 
-- Found PythonInterp: /usr/local/bin/python (found version "2.7.9") 
-- Found PythonLibs: /usr/lib/libpython2.7.dylib (found version "2.7.5") 
-- Boost version: 1.56.0 
-- Found the following Boost libraries: 
-- python 
-- Configuring done 
-- Generating done 

(Tôi gặp vấn đề khi liên kết, nhưng đó là một câu chuyện khác)

+0

Nó không thể tăng được theo sau http://stackoverflow.com/questions/33653001/unable-to-link-against-boost-python-on-os-x (Để tăng cường: python và python3) – 69444091

3

Tôi cũng gặp khó khăn trong việc biên dịch một cái gì đó với C++/Python/Boost/CMake (Cụ thể, tôi đã cố gắng để xây dựng https://github.com/mapillary/OpenSfM).

Tôi đã nhận được một lỗi như thế này

Linking CXX shared library .../OpenSfM/opensfm/csfm.so 
Undefined symbols for architecture x86_64: 
    "boost::python::instance_holder::deallocate(_object*, void*)", referenced from: 
Undefined symbols for architecture x86_64: 
"boost::python::instance_holder::deallocate(_object*, void*)", referenced from: 
... 

Lấy cảm hứng từ những nhận xét trên, tôi đã cố gắng để tìm thấy điều này trong thần thoại "tăng-trăn", nhưng nó đã không tồn tại. Thay vào đó, tôi sử dụng homebrew để cài đặt lại bình thường với python.

brew install boost --with-python 

Điều đó có hiệu quả. CMake bây giờ có thể tìm thấy tăng và bất cứ điều gì python thúc đẩy những thứ cần thiết, và biên dịch đã thành công.

+0

Đẹp. Cảm ơn! – N3sh

+2

'Cảnh báo: tăng @ 1.59: công thức này không có tùy chọn --with-python vì vậy nó sẽ bị bỏ qua! ' – IceFire

+0

'brew install boost - with-python' dường như là một giải pháp tạm thời, chúng tôi quay lại 'brew install boost-python' –

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