<style type="text/css">
p, li { white-space: pre-wrap; }
</style>
<p style="margin:0px;text-indent:0px">So I removed the build directory and started fresh. Here's the CMake output.<br></p><p style="margin:0px;text-indent:0px;font-family:courier new,monospace"><br></p><p style="margin:0px 0px 0px 40px;text-indent:0px;font-family:courier new,monospace">
Setting PDAL build type - Debug</p>
<p style="margin:0px 0px 0px 40px;text-indent:0px;font-family:courier new,monospace">Using embedded boost tree</p>
<p style="margin:0px 0px 0px 40px;text-indent:0px;font-family:courier new,monospace">Using boost lib: pdalboost</p>
<p style="margin:0px 0px 0px 40px;text-indent:0px;font-family:courier new,monospace">Building with PDAL unit tests</p>
<p style="margin:0px 0px 0px 40px;text-indent:0px;font-family:courier new,monospace">No non-embed static boost library found, setting BOOST_TEST_DYN_LINK</p>
<p style="margin:0px 0px 0px 40px;text-indent:0px;font-family:courier new,monospace">Configuring done</p>
<p style="margin:0px 0px 0px 40px;text-indent:0px;font-family:courier new,monospace">Generating done</p><br>While linking ../bin/libpdal.dylib, I get the following<br><br><div style="margin-left:40px"><span style="font-family:courier new,monospace">Undefined symbols for architecture x86_64:</span><br style="font-family:courier new,monospace">
<span style="font-family:courier new,monospace"> "boost::filesystem3::path::root_directory() const", referenced from:</span><br style="font-family:courier new,monospace"><span style="font-family:courier new,monospace"> boost::filesystem3::path::has_root_directory() constin FileUtils.cpp.o</span><br>
<br>...<br style="font-family:courier new,monospace"></div><br>make VERBOSE=1 confirms that only PDAL/boost is being included, and that libpdal is linking against libpdalboost.a.<br><br>Brad<br><br><div class="gmail_quote">
On Mon, Mar 26, 2012 at 12:32 PM, Howard Butler <span dir="ltr"><<a href="mailto:hobu.inc@gmail.com">hobu.inc@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im"><br>
On Mar 26, 2012, at 11:01 AM, Bradley Chambers wrote:<br>
<br>
> I found two previous tickets stating that the minimum Boost version should be 1.41 (<a href="https://github.com/PDAL/PDAL/issues/51" target="_blank">https://github.com/PDAL/PDAL/issues/51</a> and <a href="https://github.com/PDAL/PDAL/pull/55" target="_blank">https://github.com/PDAL/PDAL/pull/55</a>), and yet the main CMakeLists file requires 1.48 (references to 1.41 disappeared around <a href="https://github.com/PDAL/PDAL/commit/41b3b39d85c073a7325d03bf853477c71f37a05c" target="_blank">https://github.com/PDAL/PDAL/commit/41b3b39d85c073a7325d03bf853477c71f37a05c</a>). Should the CMakeLists file be downgraded once again to require 1.41?<br>
><br>
> I believe the embedded PDAL Boost may be taking over a bit too gracefully if the initial find_package call fails. I discovered this when attempting to run CMake with Boost 1.47 (before noticing the dependency on 1.48). Because the embedded package took over, and CMake completed without errors, this took a while to figure out. In hindsight, there was a status message that Boost was not found, and embedded Boost would be used, but it's easy to overlook. If the user chooses to not use embedded Boost, should the default behavior really be to use it if CMake runs into any issues?<br>
<br>
</div>There's definitely room to fix the CMake logic up here. I just did a quick and dirty on it, and I almost always build embedded now. I think the expectation should be that you're building embedded to simplify the build setup for folks and so that we can dictate a high boost version number. Right now the minimum Boost version number is 1.48, which is due to some newish boost::random being used in filters.stats.<br>
<div class="im"><br>
><br>
> Finally, when building on OS X and using the embedded Boost libraries, I currently get a slew of errors about undefined symbols in Boost::filesystem3.<br>
<br>
</div>If you were using the embedded boost, I think the errors here would be pdalboost::filesystem3:: of boost::filesystem3<br>
<br>
$ make VERBOSE=1 should give you an indication of the include path ordering and whether or not your boost is being used ahead of the system one. When the embedded boost is used, a single library that is built by CMake in ./boost is linked in. Otherwise, for a system boost, each individual library specified in the find_package invocation is required.<br>
<div><div class="h5"><br>
><br>
> Undefined symbols for architecture x86_64:<br>
> "boost::filesystem3::detail::remove(boost::filesystem3::path const&, boost::system::error_code*)", referenced from:<br>
> boost::filesystem3::remove(boost::filesystem3::path const&) in FileUtils.o<br>
> "boost::filesystem3::detail::rename(boost::filesystem3::path const&, boost::filesystem3::path const&, boost::system::error_code*)", referenced from:<br>
> boost::filesystem3::rename(boost::filesystem3::path const&, boost::filesystem3::path const&) in FileUtils.o<br>
> "boost::filesystem3::detail::status(boost::filesystem3::path const&, boost::system::error_code*)", referenced from:<br>
> boost::filesystem3::exists(boost::filesystem3::path const&) in FileUtils.o<br>
> "boost::filesystem3::detail::file_size(boost::filesystem3::path const&, boost::system::error_code*)", referenced from:<br>
> boost::filesystem3::file_size(boost::filesystem3::path const&) in FileUtils.o<br>
> "boost::filesystem3::detail::current_path(boost::system::error_code*)", referenced from:<br>
> boost::filesystem3::current_path() in FileUtils.o<br>
> "boost::filesystem3::absolute(boost::filesystem3::path const&, boost::filesystem3::path const&)", referenced from:<br>
> pdal::FileUtils::toAbsolutePath(std::string const&) in FileUtils.o<br>
> pdal::FileUtils::toAbsolutePath(std::string const&, std::string) in FileUtils.o<br>
> "boost::filesystem3::path::parent_path() const", referenced from:<br>
> pdal::FileUtils::getDirectory(std::string const&) in FileUtils.o<br>
> "boost::filesystem3::path::root_directory() const", referenced from:<br>
> boost::filesystem3::path::has_root_directory() const in FileUtils.o<br>
> "boost::filesystem3::path::filename() const", referenced from:<br>
> pdal::StageFactory::loadPlugins() in StageFactory.o<br>
> "boost::filesystem3::path::extension() const", referenced from:<br>
> pdal::StageFactory::loadPlugins() in StageFactory.o<br>
> "boost::filesystem3::path::stem() const", referenced from:<br>
> pdal::StageFactory::loadPlugins() in StageFactory.o<br>
> "boost::filesystem3::directory_entry::m_get_symlink_status(boost::system::error_code*) const", referenced from:<br>
> boost::filesystem3::directory_entry::symlink_status() const in StageFactory.o<br>
> "boost::filesystem3::path::begin() const", referenced from:<br>
> boost::filesystem3::operator<(boost::filesystem3::path const&, boost::filesystem3::path const&) in StageFactory.o<br>
> "boost::filesystem3::path::end() const", referenced from:<br>
> boost::filesystem3::operator<(boost::filesystem3::path const&, boost::filesystem3::path const&) in StageFactory.o<br>
> "boost::filesystem3::path::m_path_iterator_increment(boost::filesystem3::path::iterator&)", referenced from:<br>
> boost::filesystem3::path::iterator::increment() in StageFactory.o<br>
> "boost::filesystem3::detail::directory_iterator_increment(boost::filesystem3::directory_iterator&, boost::system::error_code*)", referenced from:<br>
> boost::filesystem3::directory_iterator::increment() in StageFactory.o<br>
> "boost::filesystem3::detail::directory_iterator_construct(boost::filesystem3::directory_iterator&, boost::filesystem3::path const&, boost::system::error_code*)", referenced from:<br>
> boost::filesystem3::directory_iterator::directory_iterator(boost::filesystem3::path const&) in StageFactory.o<br>
> "boost::filesystem3::detail::dir_itr_close(void*&, void*&)", referenced from:<br>
> boost::filesystem3::detail::dir_itr_imp::~dir_itr_imp() in StageFactory.o<br>
> "boost::filesystem3::detail::unique_path(boost::filesystem3::path const&, boost::system::error_code*)", referenced from:<br>
> boost::filesystem3::unique_path(boost::filesystem3::path const&) in Utils.o<br>
> "boost::filesystem3::detail::temp_directory_path(boost::system::error_code*)", referenced from:<br>
> boost::filesystem3::temp_directory_path() in Utils.o<br>
> "boost::filesystem3::path::operator/=(boost::filesystem3::path const&)", referenced from:<br>
> boost::filesystem3::operator/(boost::filesystem3::path const&, boost::filesystem3::path const&) in Utils.o<br>
> ld: symbol(s) not found for architecture x86_64<br>
><br>
> Brad<br>
</div></div>> _______________________________________________<br>
> pdal mailing list<br>
> <a href="mailto:pdal@lists.osgeo.org">pdal@lists.osgeo.org</a><br>
> <a href="http://lists.osgeo.org/mailman/listinfo/pdal" target="_blank">http://lists.osgeo.org/mailman/listinfo/pdal</a><br>
<br>
</blockquote></div><br>