POV-Ray : Newsgroups : povray.macintosh : Pov-ray 3.8 or 3.7.1 Command Line for Macintosh : Re: Pov-ray 3.8 or 3.7.1 Command Line for Macintosh Server Time
30 May 2023 03:18:21 EDT (-0400)
  Re: Pov-ray 3.8 or 3.7.1 Command Line for Macintosh  
From: clipka
Date: 22 Feb 2019 04:37:51
Message: <5c6fc2ef@news.povray.org>
Am 22.02.2019 um 06:09 schrieb Jake:
> "Jake" <jak### [at] studentcurtineduau> wrote:
> I've tried your suggestions for upgrading x-code and gcc without any success.

At the moment it may not be about having success, but about making 
progress. There's a huge difference there.

> When I tried using clang I got the following error message:
> Undefined symbols for architecture x86_64:
>    "pov::BoundingTask::BoundingTask(std::__1::shared_ptr<pov::BackendSceneData>,
> unsigned int, unsigned long)", referenced from:
>        pov::Scene::StartParser(POVMS_Object&) in libpovray.a(scene.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[2]: *** [povray] Error 1
> make[1]: *** [all-recursive] Error 1
> make: *** [all] Error 2

This is a linker error; such errors are typically secondary in nature 
(unless they reference library functions, but this is about a genuine 
POV-Ray function), caused by earlier compiler errors.

> When compiling with gcc I get the error:

Are you still getting those "couldn’t understand kern.osversion" 
warnings? If not, we're definitely getting somewhere:

> vfe.cpp:612:35: error: declaration of ‘virtual
> vfe::VirtualFrontEnd::~VirtualFrontEnd() noexcept (false)’ has a different
> exception specifier
>   VirtualFrontEnd::~VirtualFrontEnd()
>                                     ^
> In file included from vfe.cpp:43:0:
> vfe.h:222:15: error: from previous declaration ‘virtual
> vfe::VirtualFrontEnd::~VirtualFrontEnd() noexcept (true)’
>         virtual ~VirtualFrontEnd() ;
>                 ^
> make[2]: *** [vfe.o] Error 1
> make[1]: *** [all-recursive] Error 1
> make: *** [all] Error 2

Now this looks like an actual issue in the POV-Ray source code, and I'll 
look into it.

> I found something for the x86_64 error about switching between libstdc++ and
> libc++ by using -stdlib=libc++ as a flag somewhere in the makefile; however I
> don't want to mess with the makefile unless you think it may help (I'm not even
> sure where to place that line in the makefile).

I don't think the error messages you're seeing with clang are related to 
the standard libs, but it might be worth trying.

Such settings are usually injected into the makefile via the 
`./configure` script, either via `CXXFLAGS=-stdlib=libc++` or 
`LDFLAGS=-stdlib=libc++`; not sure which of the two you'll need, I 
suspect the former. In that case you'd use either:

     export CXXFLAGS="-stdlib=libc++"
     ./configure ...


     ./configure CXXFLAGS="-stdlib=libc++" ...

This will then automatically weave the options into the makefile at the 
proper places.

`LDFLAGS` would work in the same manner, but is for linker flags rather 
than compiler flags.

Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.