I'm an experienced Linux user, presently working on and referring to a Debian / Stretch, Debian 9 system, which has all the Boost Libraries installed. This system has both Python 2.7 and Python 3.5 extensively installed.
I'm intrigued by the idea behind LuxRender and LuxCoreRender, using OpenCL in order to do ray-tracing, and this computer has an OpenCL-capable GPU - a 'GeForce GTX460'.
But my biggest bane with LuxCoreRender is, that the Blender version which ships with Debian / Stretch - i.e., the standard version from their repositories, is v2.78a and not 2.79b . So I expect that a few features will not work, but still hope to get some use out of Lux - for the moment. But unfortunately, I have not been able to get any sort of rendered image so far - even though my GPU is detected, when I use the binary version of BlendLuxCore, suggested by this site.
And so for the moment my aim is to custom-compile LuxCoreRender, v2.0rc1, because I hope that in doing so, I can link my version of 'pyluxcore.so', to the libraries that are native to Debian / Stretch. I should point out that I've also custom-compiled Embree v2.16.0 successfully, against the repository versions of 'libtbb.so.2'.
When I tried the binary, I did an 'LD_PRELOAD' of the library - 'libtbb.so.2' - which came packaged from your project, before launching Blender, but this did not solve all the problems.
And when I try to compile the source-code of LuxCoreRender, I run in to this series of error messages:
Code: Select all
92% Built target pyluxcoretools
92% Linking CXX executable ../../bin/luxcoredemo
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PySlice_New'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyList_Sort'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyType_IsSubtype'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyExc_RuntimeError'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyUnicode_Type'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyStaticMethod_New'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyEval_CallFunction'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyUnicode_FromString'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `_Py_fopen'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyBaseObject_Type'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyNumber_InPlaceLshift'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyDict_Keys'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyArg_ParseTupleAndKeywords'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyErr_Clear'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyNumber_Xor'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyNumber_Or'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyErr_SetObject'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyLong_AsSsize_t'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyComplex_RealAsDouble'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyNumber_Add'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyDict_Clear'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyLong_AsLongLong'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyObject_RichCompare'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyObject_Size'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyUnicode_AsWideChar'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyObject_Call'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyNumber_InPlaceFloorDivide'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyUnicode_FromEncodedObject'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyTuple_Type'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyMethod_Type'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyDict_GetItem'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyUnicode_AsUTF8'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyErr_Occurred'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyComplex_ImagAsDouble'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyUnicode_FromFormat'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyExc_OverflowError'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyRun_FileExFlags'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyDict_Type'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyErr_SetString'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyList_Append'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyType_Type'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `_PyObject_New'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `_Py_NoneStruct'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyImport_Import'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyErr_NewException'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyEval_GetGlobals'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyNumber_Lshift'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyDict_GetItemString'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyBool_FromLong'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyLong_AsLong'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyNumber_InPlaceSubtract'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyExc_IndexError'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyNumber_FloorDivide'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyObject_CallMethod'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyObject_GetAttrString'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyMem_Malloc'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyErr_Format'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyStaticMethod_Type'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyCFunction_NewEx'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyLong_FromLong'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyModule_Create2'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyObject_SetAttrString'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyList_Insert'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyComplex_Type'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyDict_Copy'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyDict_Size'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyList_Reverse'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyErr_NoMemory'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyList_Type'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyModule_Type'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyBytes_AsString'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyNumber_InPlaceMultiply'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyNumber_Subtract'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `_PyType_Lookup'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyObject_DelItem'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyCallable_Check'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyLong_AsUnsignedLongLong'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyErr_ExceptionMatches'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyMethod_New'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyBytes_Size'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyNumber_InPlaceOr'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyLong_AsUnsignedLong'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyExc_TypeError'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyType_Ready'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyObject_IsTrue'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyTuple_GetItem'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyBool_Type'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyNumber_Multiply'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyErr_WarnEx'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyObject_GetAttr'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyCFunction_Type'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyTuple_New'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyNumber_InPlaceRshift'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyExc_AttributeError'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyExc_ImportError'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyNumber_Remainder'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyWeakref_NewRef'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyUnicode_AsUTF8String'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyExc_ValueError'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyNumber_And'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyImport_ImportModule'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyLong_Type'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyObject_CallFunction'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyUnicode_FromStringAndSize'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyObject_IsInstance'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyMem_Free'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyDict_Values'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyProperty_Type'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyObject_ClearWeakRefs'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyNumber_InPlaceAdd'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyDict_New'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyRun_StringFlags'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyExc_ReferenceError'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `_Py_NotImplementedStruct'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyObject_GetItem'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyObject_SetItem'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyDict_Items'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyNumber_Rshift'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyFloat_Type'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyIter_Next'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyExc_StopIteration'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyDict_Update'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyType_GenericAlloc'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyNumber_InPlaceAnd'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyList_New'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyNumber_InPlaceXor'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyObject_SetAttr'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyLong_FromUnsignedLong'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyTuple_Size'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyUnicode_InternFromString'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python-py35.so: undefined reference to `PyNumber_InPlaceRemainder'
collect2: error: ld returned 1 exit status
samples/luxcoredemo/CMakeFiles/luxcoredemo.dir/build.make:138: recipe for target 'bin/luxcoredemo' failed
(...)
dirk@Plato:~/Programs/LuxCore-luxcorerender_v2.0rc1/build$
Now, I've made sure that the CMake-GUI points to all the Python 3.5 libraries, header-files, and the corresponding Boost-Python libraries. I did not want any conflicts, between some dependencies maybe being Python 2.7, and the others maybe being Python 3.5 .
But my best guess at what may be happening here would be, that your project tries to find these linker-objects in 'libboost_python', when in fact, these objects should either be encoded in 'libboost', or even, in 3rd-party extensions, all of which I have not been able to get the CMake configuration to recognize.
At the same time, the way we install Python under Debian, there only exists a limited number of actual Python (3.5) -devel packages, but a huge number of packages with Python 3 extensions, from the latter of which it's really impossible to install everything. I.e., if LuxCoreRender needs a specific 3rd-party extension, then some sort of message needs to be displayed, that tells Debian users - which extensions.
I would appreciate any comment or help.
Dirk