Ambiguous namespace in library dependencies

14 hours ago
12 hours ago
  • sean-barton - 14 hours ago

    I am trying to install the MQTT Client SL in an existing project I have been working on for years.

    After adding the library to the project, and without adding any other code, upon building I get a C0180: Ambiguous namespace 'MBM' error between the memory block manager (MBM) in the NetBaseSrv dependency of the MQTT Client SL library and the memory block manager (MBM) in the CAA CanL2 dependency of the 3S CANopen stack library.

    I have tried:
    * setting "Only allow qualified access to all identifiers." in the properties for both the parent libraries.
    * deleting the 3S CANopen stack library. Upon (re)building the error simply points to another conflicting library - there are many.
    * deleting the Library Manager and rebuilding it.
    * adding the memory block manager library (used in the NetBaseSrv) manually and changing its namespace to MBM3S.

    None of the above allow me to access the MQTT library through its namespace (MQTT). Adding the memory block manager manually removes the C0180 error, but the MQTT library is not accessible - i.e.

    mqttClient : MQTT.MQTTClient;
    

    highlights the mqttClient as "Identifier 'MQTT.MQTTClient' not defined".

    Is there anything else I can try?

     
  • sean-barton - 12 hours ago

    I've created a very basic version of this problem as a project. Please see attached. One of the libraries in conflict is different from that described above, but the problem is the same.

    My development environment is 32bit v3.5.16.70 using v3.5.11.0 compiler.

     

Log in to post a comment.