Tell me more ×
Stack Overflow is a question and answer site for professional and enthusiast programmers. It's 100% free, no registration required.

I install boost1.53 from both brew and macport. But it seems the dylib of boost installed from the two sources are put in two different directories and it really bring my trouble. I will use it for my PCL library, and the problem is below.

When I install it only from brew and use cmake to build, it will report dylib from boost cannot be found. I check the lib location, it should be at /usr/local/lib, not in /opt/local/lib.

When I install it only from macport and build, it will successfully build it and make the files. But when I execute it, the libs in PCL will report they cannot access boost. The boost libs are put in /opt/local/lib only, not in /usr/local/lib.

Then I tried install from both files. The libs exist in both directory. But when I execute, it report this error:

dyld: lazy symbol binding failed: Symbol not found: __ZN5boost11filesystem26detail10status_apiERKSsRNS_6system10error_codeE Referenced from: /usr/local/lib/libpcl_io.1.7.dylib Expected in: /usr/local/lib/libboost_filesystem-mt.dylib

dyld: Symbol not found: __ZN5boost11filesystem26detail10status_apiERKSsRNS_6system10error_codeE Referenced from: /usr/local/lib/libpcl_io.1.7.dylib Expected in: /usr/local/lib/libboost_filesystem-mt.dylib

I use c++filt check the the error and it shows this: boost::filesystem2::detail::status_api(std::string const&, boost::system::error_code&)

I think it should be the problem caused by the confliction. The boosts version I installed from both macport and brew are both 1.5.3.

Anybody has solutions to this problem?

share|improve this question

Know someone who can answer? Share a link to this question via email, Google+, Twitter, or Facebook.

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Browse other questions tagged or ask your own question.