Ho un progetto sulla mia mano con alcune librerie che sono compilate come moduli caricabili, cioè collegate con il flag -module
di libtool. Queste librerie dovrebbero contenere tutte le funzioni necessarie in se stesse o nelle loro dipendenze, ovvero, dovrebbero produrre un programma completo quando collegato con una semplice funzione main() che richiama semplicemente tutte le funzioni dell'interfaccia del modulo per il mio programma.Quanto è portatile collegare gli eseguibili ai moduli caricabili?
Poiché ho avuto problemi con moduli incompleti e quindi inutilizzabili, ho alcuni semplici programmi di controllo che contengono solo un main() e sono collegati ai moduli. Quando manca una funzione, il linker gracchia con gli avvisi appropriati, quindi tutto bene lì. Tuttavia, libtool mi dà un avvertimento:
*** Warning: Linking the executable checkplugin_locprec against the loadable module
*** liblocprec.so is not portable!
Capisco lo scopo e l'intento di questo avviso (non collegare un programma contro una biblioteca costruita con -module
), tuttavia, non la sua gravità, e questa è la mia domanda:
Quanto grave è questo avviso? Sono solo fortunato che funzioni sulle piattaforme che sto compilando (i386/x86_64 Linux e MinGW) o questo avviso è pertinente solo per qualche oscura piattaforma backwood che posso tranquillamente ignorare?
Fortunato. Non funzionerebbe su Mac OS X. Vedi per es. [Qui] (http://stackoverflow.com/questions/2339679/what-are-the-differences-between-so-and-dylib-on-osx). –
@ n.m. Grazie per quel po '(sarebbe anche una buona risposta). Beh, se Mac OS X è il mio unico problema, sono davvero sollevato. – thiton