On Jul 8, 2015, at 3:32 AM, Stephan Witt <st.w...@gmx.net> wrote:

> Am 08.07.2015 um 12:06 schrieb Jerry <lancebo...@qwest.net>:
> 
>> 
>> On Jul 7, 2015, at 10:54 PM, Stephan Witt <st.w...@gmx.net> wrote:
>> 
>>> Am 08.07.2015 um 01:20 schrieb Jerry <lancebo...@qwest.net>:
>>> 
>>>> 
>>>> On Jul 7, 2015, at 12:38 PM, Georg Baum <georg.b...@post.rwth-aachen.de> 
>>>> wrote:
>>>> 
>>>>> Jean-Marc Lasgouttes wrote:
>>>>> 
>>>>>> Le 07/07/2015 01:07, Jerry a écrit :
>>>>>>> CXX      CutAndPaste.o
>>>>>>> CutAndPaste.cpp:390:15: error: call to 'next' is ambiguous
>>>>>>>             pars.insert(next(pars.begin(), pit),
>>>>>>>                         ^~~~
>>>>>>> 
>>>>> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/iterator:509:1:
>>>>>>> note:
>>>>>>>   candidate function [with _ForwardIter =
>>>>>>>   std::__1::__list_iterator<lyx::Paragraph, void *>]
>>>>>>> next(_ForwardIter __x,
>>>>>>> ^
>>>>>>> ./support/lyxalgo.h:92:11: note: candidate function [with It =
>>>>>>>   std::__1::__list_iterator<lyx::Paragraph, void *>, Diff = long]
>>>>>>> inline It next(It i, Diff n = 1)
>>>>> 
>>>>> We had this error before. It probably means that your clang version 
>>>>> provides 
>>>>> a std::next from the C++11 standard even if no C++11 standard is 
>>>>> requested 
>>>>> on the command line. Since we do not try to detect ourselves anymore 
>>>>> whether 
>>>>> C++98 or C++11 is used, we will probably see this more and more in the 
>>>>> future, and at some point in time we'll need to set the compiler 
>>>>> commandline 
>>>>> option --std=C++98 if configure was not called with --enable-cxx11.
>>>>> 
>>>>>> What happens if you add --enable-cxx1 to the configure command-line?
>>>>> 
>>>>> This should mean of course --enable-cxx11.
>>>>> 
>>>>> 
>>>>> Georg
>>>>> 
>>>>> 
>>>>> PS: The config log file looks good at a first glance. clang and libc++ 
>>>>> are 
>>>>> correctly detected.
>>>>> 
>>>> I added --enable-cxx11 to configure and removed the space--as discussed 
>>>> elsewhere in this thread--from the path to the Qt5 things. The compiler 
>>>> problems have gone away but now there appear to be problems linking Qt. 
>>>> Recall that the Qt version that I am attempting to reach is 5.5 downloaded 
>>>> from Qt's own web site.
>>>> 
>>>> Here is my build script:
>>>> 
>>>> 
>>>> 
>>>> #!/bin/bash
>>>> 
>>>> #  Create a build directory if one does not already exist.
>>>> cd /Applications/Words/LyXOuterFolder/git
>>>> mkdir -p build
>>>> 
>>>> # Clean out any previous build products but leave the build directory (*).
>>>> rm -rf /Applications/Words/LyXOuterFolder/git/build/*
>>>> rm -rf /Applications/Words/LyXOuterFolder/git/Contents/
>>>> 
>>>> cd /Applications/Words/LyXOuterFolder/git/lyx/
>>>> ./autogen.sh
>>>> 
>>>> # Move to build directory and run configure that is in lyx directory.
>>>> cd /Applications/Words/LyXOuterFolder/git/build/
>>>> ../lyx/configure \
>>>> --with-version-suffix=-2.X \
>>>> --with-libiconv-prefix=/usr/lib \
>>>> --with-x=no \
>>>> --disable-stdlib-debug \
>>>> --enable-cxx11 \
>>>> --prefix=/Applications/Words/LyXOuterFolder/git \
>>>> --with-qt-dir="/Applications/Words/LyXOuterFolder/git/qt/Qt_Creator.app/Contents/Frameworks/"
>>>> make
>>>> make install-strip
>>>> 
>>>> 
>>>> 
>>>> Here are the last few lines with errors. The linker might have found my 
>>>> Qt4 installation from MacPorts. I don't know if it is 32-bit or 64-bit or 
>>>> both. /opt/local/ is the MacPorts stuff. FWIW the referenced library is 
>>>> here:
>>>> 
>>>> /Applications/Words/LyXOuterFolder/git/build/src/frontends/qt4/liblyxqt4.a
>>>> 
>>>> 
>>>> CXXLD    lyx
>>>> Undefined symbols for architecture x86_64:
>>>> "decltype(*(std::__1::forward<lyx::frontend::GuiWorkArea*&>(fp0)).*fp(std::__1::forward<>(fp1)))
>>>>  std::__1::__invoke<void (lyx::frontend::GuiWorkArea::*&)(), 
>>>> lyx::frontend::GuiWorkArea*&, void>(void 
>>>> (lyx::frontend::GuiWorkArea::*&&&)(), lyx::frontend::GuiWorkArea*&&&)", 
>>>> referenced from:
>>>>   
>>>> boost::detail::function::void_function_obj_invoker0<std::__1::__bind<void 
>>>> (lyx::frontend::GuiWorkArea::*)(), lyx::frontend::GuiWorkArea*>, 
>>>> void>::invoke(boost::detail::function::function_buffer&) in 
>>>> liblyxqt4.a(GuiWorkArea.o)
>>>> ld: symbol(s) not found for architecture x86_64
>>>> clang: error: linker command failed with exit code 1 (use -v to see 
>>>> invocation)
>>>> make[4]: *** [lyx] Error 1
>>>> make[3]: *** [install-recursive] Error 1
>>>> make[2]: *** [install] Error 2
>>>> make[1]: *** [install-recursive] Error 1
>>>> make: *** [install-strip] Error 2
>>>> 
>>>> 
>>>> 
>>>> Attached is my config log. It contains the lines
>>>> 
>>>> configure:2893: checking whether Qt5 is requested
>>>> configure:2902: result: no
>>> 
>>> This means you didn't add --enable-qt5=yes - but this is only useful for 
>>> systems
>>> with Qt4 and Qt5 installed side by side (like Linux distros typically do) 
>>> and
>>> with different names for QtCore et al.
>>> 
>>> The problem with Qt detection here is the complete ignorance of the 
>>> --with-qt-dir
>>> command line option given to configure. I don't know how this should work 
>>> intentionally
>>> but your Qt4 MacPorts Qt-version wins because of the position of 
>>> /opt/local/bin in
>>> PATH and configure trying to detect Qt with pkg-config with without using 
>>> the value
>>> given by --with-qt-dir.
>>> 
>>> Why this doesn't work at the end I don't know - I don't have the MacPorts 
>>> Qt package.
>>> 
>>> Regards, Stephan
>>> 
>>> PS. I fear, you'll have a long way to go if you want to solve all issues 
>>> coming along
>>> this route. In case you want to ditch the MacPort route and go for Qt5 - I 
>>> tried it with
>>> Qt5.5.0 now and this is broken too. They've fixed the issue with RPATH dyld 
>>> at runtime
>>> lookup of the Qt-frameworks and now the LyX binary aborts on startup 
>>> because of this.
>>> I have to get a working environment with Qt5.5.0 myself first before I can 
>>> tell you
>>> the recipe for building LyX this way.
>> 
>> So I gather that somehow configure is ignoring --with-qt-dir and defaulting 
>> to the path precedence. Would it help if I prepended 
>> /Applications/Words/LyXOuterFolder/git/qt/Qt_Creator.app/Contents/Frameworks
>> to the front of PATH so that it finds Qt5 first?
> 
> No, I don't think so. IMHO, the problem is in configure using the
> /opt/local/bin/pkg-config utility first and trying the given qt-dir
> as a fallback only.
> 
>> I'm not sure I follow everything in your PS. I can use MacPorts to install 
>> qt5-mac 5.4.2 (5.5 is not yet available at MacPorts). Is that worth a try 
>> while also adding --enable-qt5=yes? (I need to keep MacPorts Qt4 around for 
>> other stuff, I assume.)
> 
> This one I cannot answer. I'd try it probably.
> 
> But I fear this conflicts with the MacPorts way of doing things.
> I'd guess you have to choose the active port of Qt after having
> both versions installed and MacPorts will create some links to
> the active version for you. I don't know.
> 
> Regards, Stephan

Hmmm.... It looks like there are activate and deactivate commands for MacPorts. 
I don't know how they handle things if one programs wants one version and 
another program wants another version. Seems like this wouldn't be allowed in 
general but I might get away with playing around for a bit.

Jerry

Reply via email to