comment faire une bibliothèque libtool s'il y a des sources avec le même nom de fichier dans plusieurs répertoires

StackOverflow https://stackoverflow.com/questions/4828429

Question

Je suis en train de compiler une bibliothèque à l'aide libtool. Le problème est que j'ai plusieurs fichiers source avec le même nom de fichier dans plusieurs répertoires. En raison de la que, pendant autoreconf, libtoolize renvoie des erreurs moi.

En fait, ma mise en page du système de fichiers est la suivante:

src/
    Makefile.am
    file.cpp
    dir1/
        file.cpp
        ...
    dir2/
        file.cpp
        ...

Le Makefile.am est placé dans le répertoire src / et est appelé par le principal Makefile.am en utilisant SUBDIRS = src. Le contenu est similaire à ce qui suit:

libfoo_la_SOURCES =    \
    file.cpp        \
    dir1/file.cpp   \
    dir2/file.cpp   \
    ...

Cependant, lorsque vous faites autoreconf, je reçois une erreur:

src/Makefile.am: object `file.lo' created by `dir1/file.cpp' and `file.cpp'

Comment résoudre cela? Je suppose que je vais devoir ajouter un Makefile.am dans chacune des subdiectories. Comment faire exactement cela? Google n'a pas aidé à trouver la solution.

Était-ce utile?

La solution 2

La solution est de créer des bibliothèques de libtool commodité (les préfixe noinst donc ils ne seront pas installés) dans chaque sous-répertoire, puis de les relier à la bibliothèque partagée finale.

Autres conseils

Même si vous faites ce travail dans le système de construction, la bibliothèque statique sera toujours des parties manquantes du code comme ar heureux membres de l'archive écrase avec le même nom.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top