2017-05-25 1 views
0

Je construis un projet qui utilise cmake.cmake erreur de construction du projet, bibliothèque partagée avec une dépendance sur un autre

Le projet utilise trois fichiers .so de bibliothèques partagées.

Dans le fichier CMakeLists.txt, j'ai ajouté les lignes suivantes qui lient les bibliothèques partagées à l'exécutable.

project (lwm2mclient) 

LINK_DIRECTORIES(/home/mraa-master-built/build/src) 
LINK_DIRECTORIES(/home/libi2capi) 
LINK_DIRECTORIES(/home/libtca6424a) 
target_link_libraries (lwm2mclient libmraa.so m libi2capi.so libtca6424a.so) 

Cependant, l'une des bibliothèques partagées libtca6424a.so dépend libi2capi.so à-dire qu'il utilise des méthodes qui sont définies en elle.

Donc, quand je construis le projet cmake, j'obtiens une erreur comme celle-ci en disant que le fichier .so ne trouve pas la méthode qui est définie dans l'autre fichier .solibtca6424a.so.

Quelqu'un pourrait-il suggérer une solution?

/../../lib/libtca6424a.so: undefined reference to `i2c_write_byte_data' 

Répondre

0

S'il vous plaît essayer

target_link_libraries (-Wl,--start-group lwm2mclient libmraa.so m libi2capi.so libtca6424a.so -Wl,--end-group) 

ou modifier l'ordre des bibliothèques