Building Scan Tailor on OSX

Scan Tailor specific announcements, releases, workflows, tips, etc. NO FEATURE REQUESTS IN THIS FORUM, please.

Re: Building Scan Tailor on OSX

Postby Tulon » 30 Jul 2010, 19:32

Again, I am no expert on OSX dynamic linker, but on Linux, statically linking to those libraries wouldn't have helped. Linking them statically wouldn't prevent their symbols from being exported (from the scantailor executable) and therefore from being available for Qt to bind to.
When Scan Tailor asks you to enter DPIs manually, never enter arbitrary values. The video tutorial shows how to estimate the real DPI.
Tulon
 
Posts: 536
Joined: 03 Oct 2009, 06:13
Location: London, UK

Re: Building Scan Tailor on OSX

Postby n9yty » 30 Jul 2010, 19:46

I still do not believe it was the issue, but I suppose it could have been. If it were, wouldn't the errors in the crash dump have pointed to some function trying to actually utilize the library functions? It was crashing in the QEventLoop::exec method. I was puzzled by that, which is why I tried a different Qt (was going to compile my own next) because there was no trace of where or what it was doing that was causing it to die.

Also, the precompiled Qt libraries appear to be built so that they do not use the system imaging libraries, they use plugin modules named libqjpeg, libqtiff, etc (although no png unless the libqmng handles png too). At any rate, this also would avoid the above issue if I'm not mistaken.

Thanks again for your hard work, even though I haven't build a scanner yet (soon!) this will undoubtedly be extremely useful.
User avatar
n9yty
 
Posts: 72
Joined: 25 Jul 2010, 22:13

Re: Building Scan Tailor on OSX

Postby knappen » 31 Jul 2010, 15:29

Hi

With the new version, the program doesn't crash anymore when I run it on a mixed folder, but it seems that Scan Tailor can't quite grasp the png image, which is left with a question mark in "Select content/Margins". This of course means that one can't get to "Output" as the final size of pages isn't decided.
knappen
 
Posts: 35
Joined: 29 Jul 2010, 20:21

Re: Building Scan Tailor on OSX

Postby n9yty » 31 Jul 2010, 15:56

knappen wrote:when I run it on a mixed folder, but it seems that Scan Tailor can't quite grasp the png image, which is left with a question mark in "Select content/Margins". This of course means that one can't get to "Output" as the final size of pages isn't decided.
I just ran a batch on the PowerPC G4 system I have, running 10.5, and I cannot duplicate this. I will have to try it on a few other systems at work next week with different OS versions and Intel/PPC processors.
User avatar
n9yty
 
Posts: 72
Joined: 25 Jul 2010, 22:13

Re: Building Scan Tailor on OSX

Postby afdezc » 08 Oct 2010, 12:11

I have followed the instructions to build Scan Tailor on OSX (I have Snow Leopard, 10.6.4) to the dot. I get a compiling error when I get to 83% and I can't get past that:

[ 83%] Building CXX object CMakeFiles/scantailor.dir/ProjectFilesDialog.cpp.o
/opt/local/include/boost/lambda/detail/function_adaptors.hpp: In static member function ‘static RET boost::lambda::function_adaptor<T Object::*>::apply(T Object::*, const Object&) [with RET = int&, Object = std::pair<int, int>, T = int]’:
/opt/local/include/boost/lambda/detail/actions.hpp:87: instantiated from ‘static RET boost::lambda::function_action<2, T>::apply(A1&, A2&) [with RET = int&, A1 = int std::pair<int, int>::* const, A2 = const std::pair<int, int>, T = boost::lambda::detail::unspecified]’
/opt/local/include/boost/lambda/detail/lambda_functor_base.hpp:424: instantiated from ‘RET boost::lambda::lambda_functor_base<boost::lambda::action<2, Act>, Args>::call(A&, B&, C&, Env&) const [with RET = int&, A = const std::pair<int, int>, B = const std::pair<int, int>, C = const boost::tuples::null_type, Env = const boost::tuples::null_type, Act = boost::lambda::function_action<2, boost::lambda::detail::unspecified>, Args = boost::tuples::tuple<int std::pair<int, int>::* const, const boost::lambda::lambda_functor<boost::lambda::placeholder<2> >, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type>]’
/opt/local/include/boost/lambda/detail/select_functions.hpp:30: instantiated from ‘typename Arg::sig<boost::tuples::tuple<A&, B&, C&, Env&, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> >::type boost::lambda::detail::select(const boost::lambda::lambda_functor<T>&, A&, B&, C&, Env&) [with Arg = boost::lambda::lambda_functor_base<boost::lambda::action<2, boost::lambda::function_action<2, boost::lambda::detail::unspecified> >, boost::tuples::tuple<int std::pair<int, int>::* const, const boost::lambda::lambda_functor<boost::lambda::placeholder<2> >, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> >, A = const std::pair<int, int>, B = const std::pair<int, int>, C = const boost::tuples::null_type, Env = const boost::tuples::null_type]’
/opt/local/include/boost/lambda/detail/operator_lambda_func_base.hpp:218: instantiated from ‘RET boost::lambda::lambda_functor_base<boost::lambda::relational_action<boost::lambda::less_action>, Args>::call(A&, B&, C&, Env&) const [with RET = bool, A = const std::pair<int, int>, B = const std::pair<int, int>, C = const boost::tuples::null_type, Env = const boost::tuples::null_type, Args = boost::tuples::tuple<boost::lambda::lambda_functor<boost::lambda::lambda_functor_base<boost::lambda::action<2, boost::lambda::function_action<2, boost::lambda::detail::unspecified> >, boost::tuples::tuple<int std::pair<int, int>::* const, const boost::lambda::lambda_functor<boost::lambda::placeholder<1> >, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> > >, boost::lambda::lambda_functor<boost::lambda::lambda_functor_base<boost::lambda::action<2, boost::lambda::function_action<2, boost::lambda::detail::unspecified> >, boost::tuples::tuple<int std::pair<int, int>::* const, const boost::lambda::lambda_functor<boost::lambda::placeholder<2> >, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> > >, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type>]’
/opt/local/include/boost/lambda/detail/lambda_functors.hpp:234: instantiated from ‘typename T::sig<boost::tuples::tuple<const A&, const B&, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> >::type boost::lambda::lambda_functor<Base>::operator()(const A&, const B&) const [with A = std::pair<int, int>, B = std::pair<int, int>, T = boost::lambda::lambda_functor_base<boost::lambda::relational_action<boost::lambda::less_action>, boost::tuples::tuple<boost::lambda::lambda_functor<boost::lambda::lambda_functor_base<boost::lambda::action<2, boost::lambda::function_action<2, boost::lambda::detail::unspecified> >, boost::tuples::tuple<int std::pair<int, int>::* const, const boost::lambda::lambda_functor<boost::lambda::placeholder<1> >, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> > >, boost::lambda::lambda_functor<boost::lambda::lambda_functor_base<boost::lambda::action<2, boost::lambda::function_action<2, boost::lambda::detail::unspecified> >, boost::tuples::tuple<int std::pair<int, int>::* const, const boost::lambda::lambda_functor<boost::lambda::placeholder<2> >, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> > >, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> >]’
/usr/include/c++/4.2.1/bits/stl_algo.h:125: instantiated from ‘const _Tp& std::__median(const _Tp&, const _Tp&, const _Tp&, _Compare) [with _Tp = std::pair<int, int>, _Compare = boost::lambda::lambda_functor<boost::lambda::lambda_functor_base<boost::lambda::relational_action<boost::lambda::less_action>, boost::tuples::tuple<boost::lambda::lambda_functor<boost::lambda::lambda_functor_base<boost::lambda::action<2, boost::lambda::function_action<2, boost::lambda::detail::unspecified> >, boost::tuples::tuple<int std::pair<int, int>::* const, const boost::lambda::lambda_functor<boost::lambda::placeholder<1> >, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> > >, boost::lambda::lambda_functor<boost::lambda::lambda_functor_base<boost::lambda::action<2, boost::lambda::function_action<2, boost::lambda::detail::unspecified> >, boost::tuples::tuple<int std::pair<int, int>::* const, const boost::lambda::lambda_functor<boost::lambda::placeholder<2> >, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> > >, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> > >]’
/usr/include/c++/4.2.1/bits/stl_algo.h:2795: instantiated from ‘void std::__introsort_loop(_RandomAccessIterator, _RandomAccessIterator, _Size, _Compare) [with _RandomAccessIterator = std::pair<int, int>*, _Size = long int, _Compare = boost::lambda::lambda_functor<boost::lambda::lambda_functor_base<boost::lambda::relational_action<boost::lambda::less_action>, boost::tuples::tuple<boost::lambda::lambda_functor<boost::lambda::lambda_functor_base<boost::lambda::action<2, boost::lambda::function_action<2, boost::lambda::detail::unspecified> >, boost::tuples::tuple<int std::pair<int, int>::* const, const boost::lambda::lambda_functor<boost::lambda::placeholder<1> >, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> > >, boost::lambda::lambda_functor<boost::lambda::lambda_functor_base<boost::lambda::action<2, boost::lambda::function_action<2, boost::lambda::detail::unspecified> >, boost::tuples::tuple<int std::pair<int, int>::* const, const boost::lambda::lambda_functor<boost::lambda::placeholder<2> >, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> > >, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> > >]’
/usr/include/c++/4.2.1/bits/stl_algo.h:2866: instantiated from ‘void std::sort(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = std::pair<int, int>*, _Compare = boost::lambda::lambda_functor<boost::lambda::lambda_functor_base<boost::lambda::relational_action<boost::lambda::less_action>, boost::tuples::tuple<boost::lambda::lambda_functor<boost::lambda::lambda_functor_base<boost::lambda::action<2, boost::lambda::function_action<2, boost::lambda::detail::unspecified> >, boost::tuples::tuple<int std::pair<int, int>::* const, const boost::lambda::lambda_functor<boost::lambda::placeholder<1> >, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> > >, boost::lambda::lambda_functor<boost::lambda::lambda_functor_base<boost::lambda::action<2, boost::lambda::function_action<2, boost::lambda::detail::unspecified> >, boost::tuples::tuple<int std::pair<int, int>::* const, const boost::lambda::lambda_functor<boost::lambda::placeholder<2> >, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> > >, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> > >]’
/Users/anabeli/Downloads/scantailor-0.9.9.1/ProjectFilesDialog.cpp:703: instantiated from here
/opt/local/include/boost/lambda/detail/function_adaptors.hpp:264: error: invalid initialization of reference of type ‘int&’ from expression of type ‘const int’
make[2]: *** [CMakeFiles/scantailor.dir/ProjectFilesDialog.cpp.o] Error 1
make[1]: *** [CMakeFiles/scantailor.dir/all] Error 2
make: *** [all] Error 2

How can I fix this?
Many thanks,
Anabeli
afdezc
 
Posts: 2
Joined: 07 Oct 2010, 21:25

Re: Building Scan Tailor on OSX

Postby Tulon » 08 Oct 2010, 16:53

It's an incompatibility with the latest boost. It's fixed in Git, so you can build that, or you can take just the file ProjectFilesDialog.cpp from there. I do plan to make a new release in the nearest future, so your third option would be waiting for that to happen. Oh, and the fourth one is to downgrade boost.
When Scan Tailor asks you to enter DPIs manually, never enter arbitrary values. The video tutorial shows how to estimate the real DPI.
Tulon
 
Posts: 536
Joined: 03 Oct 2009, 06:13
Location: London, UK

Re: Building Scan Tailor on OSX

Postby afdezc » 09 Oct 2010, 15:58

Git worked fine. Thanks a lot!
afdezc
 
Posts: 2
Joined: 07 Oct 2010, 21:25

Re: Building Scan Tailor on OSX

Postby Denivic » 12 Nov 2010, 14:10

Hey everyone, I am still making my rounds around these threads, so forgive me if i ask a redundant question. Can someone point me to the URL for Scan Tailor MAC version.

Thanks in advance,
Denivic
 
Posts: 13
Joined: 08 Nov 2010, 02:56
Location: Online

Re: Building Scan Tailor on OSX

Postby daniel_reetz » 12 Nov 2010, 14:26

here's one version.
User avatar
daniel_reetz
 
Posts: 2490
Joined: 03 Jun 2009, 13:56

Re: Building Scan Tailor on OSX

Postby Denivic » 12 Nov 2010, 16:45

Thanks daniel I will try it out.
Denivic
 
Posts: 13
Joined: 08 Nov 2010, 02:56
Location: Online

PreviousNext

Return to Scan Tailor

Who is online

Users browsing this forum: No registered users and 0 guests