Page 1 of 1

CEGUI 0.8.2 Build Error on OSX - OpenGL3Renderer

Posted: Mon Jun 24, 2013 00:54
by Sonblind
I am on OSX 10.8.4 using Xcode 4.6.3. I tried to compile the default settings via the command line as in the Youtube tutorial with:

Code: Select all

cmake -G Xcode

then

Code: Select all

xcodebuild -configuration Debug -jobs 2


I get an error saying that the OpenGL3Renderer destructor is declared private. Am I doing something wrong?

Code: Select all

struct OpenGL3Renderer_wrapper : CEGUI::OpenGL3Renderer, bp::wrapper< CEGUI::OpenGL3Renderer > {
                                 ^~~~~~~~~~~~~~~~~~~~~~
/Users/Sam/cegui-0.8.2/cegui/include/CEGUI/RendererModules/OpenGL/GL3Renderer.h:255:13: note: declared private here
    virtual ~OpenGL3Renderer();
            ^
/Users/Sam/cegui-0.8.2/cegui/src/ScriptModules/Python/bindings/output/CEGUIOpenGLRenderer/OpenGL3Renderer.pypp.cpp:15:43: note: implicit default destructor for 'OpenGL3Renderer_wrapper' first required here
            this->CEGUI::OpenGL3Renderer::beginRendering(  );
                                          ^
1 error generated.


Code: Select all

** BUILD FAILED **


The following build commands failed:
   CompileC build/cegui/src/ScriptModules/Python/bindings/cegui.build/Release/PyCEGUIOpenGLRenderer.build/Objects-normal/x86_64/OpenGL3Renderer.pypp.o cegui/src/ScriptModules/Python/bindings/output/CEGUIOpenGLRenderer/OpenGL3Renderer.pypp.cpp normal x86_64 c++ com.apple.compilers.llvm.clang.1_0.compiler
(1 failure)

Re: CEGUI 0.8.2 Build Error on OSX - OpenGL3Renderer

Posted: Mon Jun 24, 2013 01:05
by Sonblind
Next I tried running the Cmake GUI (with default settings) and then explicitly set Xcode to use c++11 and got the following errors:

Code: Select all

Ld build/lib/PyCEGUIOpenGLRenderer_d.so normal x86_64
    cd /Users/Sam/cegui-0.8.2
    setenv MACOSX_DEPLOYMENT_TARGET 10.8
    /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -arch x86_64 -bundle -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk -L/Users/Sam/cegui-0.8.2/build/lib -F/Users/Sam/cegui-0.8.2/build/lib -filelist /Users/Sam/cegui-0.8.2/build/cegui/src/ScriptModules/Python/bindings/cegui.build/Debug/PyCEGUIOpenGLRenderer.build/Objects-normal/x86_64/PyCEGUIOpenGLRenderer_d.LinkFileList -mmacosx-version-min=10.8 -Wl,-search_paths_first -Wl,-headerpad_max_install_names /Users/Sam/cegui-0.8.2/build/lib/libCEGUIBase-0_d.dylib /usr/local/lib/libboost_python-mt.dylib /usr/lib/libpython2.7.dylib /Users/Sam/cegui-0.8.2/build/lib/libCEGUIOpenGLRenderer-0_d.dylib /Users/Sam/cegui-0.8.2/build/lib/libCEGUIBase-0_d.dylib -stdlib=libc++ -o /Users/Sam/cegui-0.8.2/build/lib/PyCEGUIOpenGLRenderer_d.so

Undefined symbols for architecture x86_64:
  "boost::python::objects::function_object(boost::python::objects::py_function const&, std::__1::pair<boost::python::detail::keyword const*, boost::python::detail::keyword const*> const&)", referenced from:
      boost::python::api::object boost::python::detail::make_function_aux<void (OpenGL3Renderer_wrapper::*)(CEGUI::Size<float> const&), boost::python::default_call_policies, boost::mpl::vector3<void, OpenGL3Renderer_wrapper&, CEGUI::Size<float> const&>, mpl_::int_<1> >(void (OpenGL3Renderer_wrapper::*)(CEGUI::Size<float> const&), boost::python::default_call_policies const&, boost::mpl::vector3<void, OpenGL3Renderer_wrapper&, CEGUI::Size<float> const&> const&, std::__1::pair<boost::python::detail::keyword const*, boost::python::detail::keyword const*> const&, mpl_::int_<1>) in OpenGL3Renderer.pypp.o
      boost::python::api::object boost::python::detail::make_function_aux<void (CEGUI::OpenGLRendererBase::*)(CEGUI::Size<float> const&), boost::python::default_call_policies, boost::mpl::vector3<void, CEGUI::OpenGL3Renderer&, CEGUI::Size<float> const&>, mpl_::int_<1> >(void (CEGUI::OpenGLRendererBase::*)(CEGUI::Size<float> const&), boost::python::default_call_policies const&, boost::mpl::vector3<void, CEGUI::OpenGL3Renderer&, CEGUI::Size<float> const&> const&, std::__1::pair<boost::python::detail::keyword const*, boost::python::detail::keyword const*> const&, mpl_::int_<1>) in OpenGL3Renderer.pypp.o
      boost::python::api::object boost::python::detail::make_function_aux<void (*)(CEGUI::String const&), boost::python::default_call_policies, boost::mpl::vector2<void, CEGUI::String const&>, mpl_::int_<1> >(void (*)(CEGUI::String const&), boost::python::default_call_policies const&, boost::mpl::vector2<void, CEGUI::String const&> const&, std::__1::pair<boost::python::detail::keyword const*, boost::python::detail::keyword const*> const&, mpl_::int_<1>) in OpenGL3Renderer.pypp.o
      boost::python::api::object boost::python::detail::make_function_aux<bool (OpenGL3Renderer_wrapper::*)(CEGUI::String const&) const, boost::python::default_call_policies, boost::mpl::vector3<bool, OpenGL3Renderer_wrapper&, CEGUI::String const&>, mpl_::int_<1> >(bool (OpenGL3Renderer_wrapper::*)(CEGUI::String const&) const, boost::python::default_call_policies const&, boost::mpl::vector3<bool, OpenGL3Renderer_wrapper&, CEGUI::String const&> const&, std::__1::pair<boost::python::detail::keyword const*, boost::python::detail::keyword const> const&, mpl_::int_<1>) in OpenGL3Renderer.pypp.o
      boost::python::api::object boost::python::detail::make_function_aux<bool (CEGUI::OpenGLRendererBase::*)(CEGUI::String const&) const, boost::python::default_call_policies, boost::mpl::vector3<bool, CEGUI::OpenGL3Renderer&, CEGUI::String const&>, mpl_::int_<1> >(bool (CEGUI::OpenGLRendererBase::*)(CEGUI::String const&) const, boost::python::default_call_policies const&, boost::mpl::vector3<bool, CEGUI::OpenGL3Renderer&, CEGUI::String const&> const&, std::__1::pair<boost::python::detail::keyword const*, boost::python::detail::keyword const> const&, mpl_::int_<1>) in OpenGL3Renderer.pypp.o
      boost::python::api::object boost::python::detail::make_function_aux<void (OpenGL3Renderer_wrapper::*)(), boost::python::default_call_policies, boost::mpl::vector2<void, OpenGL3Renderer_wrapper&>, mpl_::int_<0> >(void (OpenGL3Renderer_wrapper::*)(), boost::python::default_call_policies const&, boost::mpl::vector2<void, OpenGL3Renderer_wrapper&> const&, std::__1::pair<boost::python::detail::keyword const*, boost::python::detail::keyword const*> const&, mpl_::int_<0>) in OpenGL3Renderer.pypp.o
      boost::python::api::object boost::python::detail::make_function_aux<CEGUI::Texture& (CEGUI::OpenGLRendererBase::*)(CEGUI::String const&) const, boost::python::return_value_policy<boost::python::reference_existing_object, boost::python::default_call_policies>, boost::mpl::vector3<CEGUI::Texture&, CEGUI::OpenGL3Renderer&, CEGUI::String const&>, mpl_::int_<1> >(CEGUI::Texture& (CEGUI::OpenGLRendererBase::*)(CEGUI::String const&) const, boost::python::return_value_policy<boost::python::reference_existing_object, boost::python::default_call_policies> const&, boost::mpl::vector3<CEGUI::Texture&, CEGUI::OpenGL3Renderer&, CEGUI::String const&> const&, std::__1::pair<boost::python::detail::keyword const*, boost::python::detail::keyword const> const&, mpl_::int_<1>) in OpenGL3Renderer.pypp.o
      ...
  "boost::python::objects::register_dynamic_id_aux(boost::python::type_info, std::__1::pair<void*, boost::python::type_info> (*)(void*))", referenced from:
      void boost::python::objects::register_dynamic_id<OpenGL3Renderer_wrapper>(OpenGL3Renderer_wrapper*) in OpenGL3Renderer.pypp.o
      void boost::python::objects::register_dynamic_id<CEGUI::OpenGL3Renderer>(CEGUI::OpenGL3Renderer*) in OpenGL3Renderer.pypp.o
      void boost::python::objects::register_dynamic_id<CEGUI::OpenGLRendererBase>(CEGUI::OpenGLRendererBase*) in OpenGL3Renderer.pypp.o
      void boost::python::objects::register_dynamic_id<CEGUI::OpenGL3Shader>(CEGUI::OpenGL3Shader*) in OpenGL3Shader.pypp.o
      void boost::python::objects::register_dynamic_id<CEGUI::OpenGL3StateChangeWrapper>(CEGUI::OpenGL3StateChangeWrapper*) in OpenGL3StateChangeWrapper.pypp.o
      void boost::python::objects::register_dynamic_id<OpenGLGeometryBufferBase_wrapper>(OpenGLGeometryBufferBase_wrapper*) in OpenGLGeometryBufferBase.pypp.o
      void boost::python::objects::register_dynamic_id<CEGUI::OpenGLGeometryBufferBase>(CEGUI::OpenGLGeometryBufferBase*) in OpenGLGeometryBufferBase.pypp.o
      ...
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Re: CEGUI 0.8.2 Build Error on OSX - OpenGL3Renderer

Posted: Tue Jun 25, 2013 18:09
by Kulik
Very strange.

As a temporary workaround, disable PyCEGUI with CEGUI_BUILD_PYTHON_MODULES=0

Re: CEGUI 0.8.2 Build Error on OSX - OpenGL3Renderer

Posted: Wed Jun 26, 2013 01:19
by Sonblind
This worked. It was also necessary to change the compiler settings to use C++11 in order to compile the OpenGLRenderer. The sample projects actually compiled with those errors mentioned above from pyCEGUI, but after turning off the pyCEGUI module it compiles without any errors. Thanks!