Failed to link codelite-lldb

Discussion about CodeLite development process and patches
tankist02
CodeLite Veteran
Posts: 56
Joined: Thu Sep 22, 2011 11:29 pm
Genuine User: Yes
IDE Question: c++
Contact:

Failed to link codelite-lldb

Post by tankist02 » Wed Jul 16, 2014 3:31 am

Trying to build latest CL sources from git on RedHat 6.5 using dev tools 2.1 (gcc 4.8.2). Followed the standard procedure to build Release version and got the following error:

Code: Select all

Linking CXX executable ../../bin/codelite-lldb
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `std::__throw_bad_function_call()@GLIBCXX_3.4.14'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `std::__detail::_List_node_base::_M_unhook()@GLIBCXX_3.4.15'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `std::__detail::_List_node_base::swap(std::__detail::_List_node_base&, std::__detail::_List_node_base&)@GLIBCXX_3.4.15'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `std::__detail::_List_node_base::_M_transfer(std::__detail::_List_node_base*, std::__detail::_List_node_base*)@GLIBCXX_3.4.15'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `std::_Hash_bytes(void const*, unsigned long, unsigned long)@CXXABI_1.3.5'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `std::__detail::_List_node_base::_M_hook(std::__detail::_List_node_base*)@GLIBCXX_3.4.15'
collect2: error: ld returned 1 exit status
make[2]: *** [bin/codelite-lldb] Error 1
make[1]: *** [LLDBDebugger/codelite-lldb/CMakeFiles/codelite-lldb.dir/all] Error 2
make: *** [all] Error 2

User avatar
eranif
CodeLite Plugin
Posts: 5982
Joined: Wed Feb 06, 2008 9:29 pm
Genuine User: Yes
IDE Question: C++
Contact:

Re: Failed to link codelite-lldb

Post by eranif » Wed Jul 16, 2014 9:57 am

You have 2 options here:
- Build lldb yourself and use that binary instead of the pre-built one
- Disable LLDB when building codelite, by adding this line:

Code: Select all

-DENABLE_LLDB=0
To the CMake line

Eran
Make sure you have read the HOW TO POST thread

tankist02
CodeLite Veteran
Posts: 56
Joined: Thu Sep 22, 2011 11:29 pm
Genuine User: Yes
IDE Question: c++
Contact:

Re: Failed to link codelite-lldb

Post by tankist02 » Thu Jul 17, 2014 12:40 am

Hi Eran,

Thanks a lot, the second option worked!

Do I need lldb if I don't use clang/llvm (yet)? For now it is gcc only.

User avatar
eranif
CodeLite Plugin
Posts: 5982
Joined: Wed Feb 06, 2008 9:29 pm
Genuine User: Yes
IDE Question: C++
Contact:

Re: Failed to link codelite-lldb

Post by eranif » Thu Jul 17, 2014 9:21 am

tankist02 wrote:Do I need lldb if I don't use clang/llvm (yet)?
When under Linux, whatever lldb can do, gdb does better (at least in codelite terms)
So, no. You don't need lldb (even when using clang, gdb can debug it pretty well)
Eran
Make sure you have read the HOW TO POST thread

tankist02
CodeLite Veteran
Posts: 56
Joined: Thu Sep 22, 2011 11:29 pm
Genuine User: Yes
IDE Question: c++
Contact:

Re: Failed to link codelite-lldb

Post by tankist02 » Thu Nov 06, 2014 1:16 am

Tried to build the trunk (as of today) and got linking errors when building codelite-lldb:

Code: Select all

...
Linking CXX executable ../../bin/codelite-lldb
[ 60%] Building CXX object DatabaseExplorer/CMakeFiles/DatabaseExplorer.dir/GUI.cpp.o
[ 60%] Building CXX object SFTP/CMakeFiles/SFTP.dir/UI.cpp.o
[ 60%] Building CXX object SFTP/CMakeFiles/SFTP.dir/sftp_item_comparator.cpp.o
Scanning dependencies of target PHPUnitTests
[ 60%] Building CXX object codelitephp/CMakeFiles/PHPUnitTests.dir/PHPParserUnitTests/main.cpp.o
[ 60%] Building CXX object LLDBDebugger/CMakeFiles/LLDBDebugger.dir/LLDBSettingDialog.cpp.o
[ 60%] Building CXX object Subversion2/CMakeFiles/Subversion.dir/svn_props_dialog.cpp.o
/opt/rh/devtoolset-2/root/usr/libexec/gcc/x86_64-redhat-linux/4.8.2/ld: warning: libpython2.7.so.1.0, needed by ../../../sdk/lldb/unix/lib/x86_64/liblldb.so, not found (try using -rpath or -rpath-link)
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyThreadState_GetDict'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyByteArray_AsString'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyLong_FromLong'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `std::__throw_bad_function_call()@GLIBCXX_3.4.14'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyExc_NotImplementedError'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyByteArray_Type'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyType_IsSubtype'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyErr_Fetch'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyExc_RuntimeError'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyErr_GivenExceptionMatches'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyEval_RestoreThread'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `std::__detail::_List_node_base::_M_unhook()@GLIBCXX_3.4.15'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyDict_Size'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyString_Size'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyExc_MemoryError'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyErr_Print'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyString_FromStringAndSize'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `_Py_ZeroStruct'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyDict_Keys'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyByteArray_Size'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `_PyThreadState_Current'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyInstance_Type'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `_PyWeakref_CallableProxyType'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyList_SetItem'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyErr_Clear'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyCallable_Check'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `std::__detail::_List_node_base::swap(std::__detail::_List_node_base&, std::__detail::_List_node_base&)@GLIBCXX_3.4.15'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyCapsule_New'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyLong_AsUnsignedLongLong'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyInt_AsLong'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyErr_ExceptionMatches'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyExc_TypeError'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyLong_AsUnsignedLong'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyRun_SimpleStringFlags'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyEval_InitThreads'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyType_Ready'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyFloat_FromDouble'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyObject_IsTrue'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyObject_Print'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `_PyWeakref_ProxyType'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `_PyObject_GetDictPtr'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyObject_Size'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyObject_Malloc'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyLong_AsLongLong'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyTuple_SetItem'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyInstance_NewRaw'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyObject_Call'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyEval_ThreadsInitialized'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyString_AsString'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyObject_GetAttr'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyExc_SyntaxError'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyList_Size'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyCFunction_Type'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyExc_SystemExit'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyDict_GetItem'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyTuple_New'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyImport_AddModule'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyObject_CallFunctionObjArgs'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyString_FromFormat'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `std::__detail::_List_node_base::_M_transfer(std::__detail::_List_node_base*, std::__detail::_List_node_base*)@GLIBCXX_3.4.15'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `std::_Hash_bytes(void const*, unsigned long, unsigned long)@CXXABI_1.3.5'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyObject_GenericGetAttr'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyExc_AttributeError'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyParser_SimpleParseStringFlags'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyErr_Occurred'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyString_ConcatAndDel'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyDict_SetItem'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyExc_ValueError'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyUnicodeUCS4_AsUTF8String'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyDict_SetItemString'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyImport_ImportModule'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyExc_OverflowError'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyClass_Type'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyModule_GetDict'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyString_FromString'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `std::__detail::_List_node_base::_M_hook(std::__detail::_List_node_base*)@GLIBCXX_3.4.15'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyArg_Parse'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyFile_AsFile'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyTuple_GetSlice'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyObject_CallFunction'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyString_AsStringAndSize'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyGILState_Ensure'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyErr_SetString'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyObject_CallObject'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyList_GetItem'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `Py_InitModule4_64'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyList_Append'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyEval_EvalCode'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyExc_IOError'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyArg_ParseTuple'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyObject_Init'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyString_Format'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyObject_Repr'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyLong_FromUnsignedLongLong'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `_PyInstance_Lookup'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyDict_Next'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `_PyObject_New'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyCapsule_GetPointer'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyInt_FromLong'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `_Py_NoneStruct'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyDict_New'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyRun_StringFlags'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `Py_InitializeEx'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyGILState_Release'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyModule_AddObject'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `_Py_NotImplementedStruct'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyExc_SystemError'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `Py_BuildValue'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyFile_FromFile'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyObject_Free'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyBool_FromLong'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyLong_AsLong'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `_Py_TrueStruct'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyFloat_Type'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyExc_IndexError'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyObject_AsFileDescriptor'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyFile_Type'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyFloat_AsDouble'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyLong_FromLongLong'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyEval_SaveThread'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyInt_FromSize_t'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyFunction_Type'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyArg_UnpackTuple'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyNode_Compile'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyLong_FromVoidPtr'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyCapsule_Import'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyObject_CallMethod'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyObject_GetAttrString'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyList_New'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyObject_Str'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyExc_ZeroDivisionError'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyLong_FromUnsignedLong'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyTuple_Size'
collect2: error: ld returned 1 exit status
make[2]: *** [bin/codelite-lldb] Error 1
make[1]: *** [LLDBDebugger/codelite-lldb/CMakeFiles/codelite-lldb.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
I tried to follow the advice above:

Code: Select all

cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release -ENABLE_LLDB=0 ..
but got the same error.

tankist02
CodeLite Veteran
Posts: 56
Joined: Thu Sep 22, 2011 11:29 pm
Genuine User: Yes
IDE Question: c++
Contact:

Re: Failed to link codelite-lldb

Post by tankist02 » Thu Nov 06, 2014 1:25 am

make complains that libpython27 is not found, but python27-devel is installed:

Code: Select all

# yum install python27-python-devel
Loaded plugins: changelog, refresh-packagekit, rhnplugin, versionlock
This system is receiving updates from RHN Classic or RHN Satellite.
Setting up Install Process
Package python27-python-devel-2.7.5-10.el6.x86_64 already installed and latest version
Nothing to do
This is RedHat 6.5 with Devtools 2.1 (gcc 4.8.2).

tankist02
CodeLite Veteran
Posts: 56
Joined: Thu Sep 22, 2011 11:29 pm
Genuine User: Yes
IDE Question: c++
Contact:

Re: Failed to link codelite-lldb

Post by tankist02 » Thu Nov 06, 2014 1:32 am

Solved by switching to use python27:

Code: Select all

scl enable python27 bash
rerunning cmake and rebuilding.

As for ENABLE_LLDB=0 I mistyped it and that's why it was ignored.

Sorry for the noise.

Post Reply