undefined symbol: sipExportedExceptions_limacore

Laurent Claustre claustre at esrf.fr
Mon Dec 1 08:06:24 GMT 2025


With sip 4 we got the good implementation in the generated c++ file:

PyObject *sipExportedExceptions_limacore[2];

But with sip 6 this is missing.

On 12/1/25 08:10, Laurent Claustre wrote:
> Sorry, the implementation is missing.
>
> On 11/28/25 17:28, Phil Thompson wrote:
>> On 28/11/2025 16:07, Laurent Claustre wrote:
>>> Hello,
>>>
>>> porting our C++ project python binding  from sip 4.19 to 6.14 we got
>>> the following error when importing the project module:
>>>
>>> /undefined symbol: sipExportedExceptions_limacore/
>>>
>>> Looking into the generated sipAPI project file (sipAPIlimacore.h)
>>> sipExportedExceptions_limacore is declared as "external":
>>>
>>> //* The exceptions defined in this module. */
>>> extern PyObject *sipExportedExceptions_limacore[];/
>>>
>>> But none of the .h/.cpp generated file contains its declaration. We
>>> have a Exceptions.sip file which looks like:
>>>
>>> /enum Layer {
>>>     Common, Control, Hardware, CameraPlugin,
>>> };
>>>
>>> enum ErrorType {
>>>     InvalidValue, NotSupported, Error,
>>> };
>>>
>>>
>>> %Exception Exception(SIP_Exception)
>>> {
>>> %TypeHeaderCode
>>> #include "lima/Exceptions.h"
>>> using namespace lima;
>>> %End
>>> %RaiseCode
>>>     const std::string& tmpString = sipExceptionRef.getErrMsg();
>>>     const char *detail = tmpString.c_str();
>>>     PyErr_SetString(sipException_Exception, detail);
>>> %End
>>> };
>>> /
>>>
>>> Thanks for your help
>>>
>>> Laurent
>>
>> Compared to the 4.19 code is the declaration new or is the 
>> implementation missing?
>>
>> Phil
>
-- 
Laurent Claustre

Beamline Control Unit
Instrumentation Services and Development Division
ESRF - The European Synchrotron
71, avenue des Martyrs
38000 Grenoble, FRANCE
Tel.: +33 (0)4.76.88.29.12



More information about the PyQt mailing list