Как сделать библиотеку с Libtool, если есть источники с одинаковым именем файла в нескольких каталогах

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

Вопрос

Я пытаюсь собрать библиотеку с помощью Libtool. Проблема в том, что у меня есть несколько исходных файлов с одинаковым именем файла в нескольких каталогах. Из -за этого, во время AutoreConf, Libtoolize бросает ошибки на меня.

По сути, мой макет файловой системы заключается в следующем:

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

А Makefile.am помещается в SRC/ каталог и вызывается основным makefile.am с использованием SUBDIRS = src. Анкет Содержимое похоже на следующее:

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

Однако при выполнении AutoreConf я получаю ошибку:

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

Как решить это? Я предполагаю, что мне придется добавить makefile.am в каждый из поддействий. Как именно это сделать? Google не помог найти решение.

Это было полезно?

Решение 2

Решение состоит в том, чтобы создать удобные библиотеки Libtool (префикс их NOUNST, чтобы они не были установлены) в каждом подкаталоге, а затем свяжите их с окончательной общей библиотекой.

Другие советы

Даже если вы сделаете эту работу в системе сборки, в статической библиотеке все равно будет отсутствовать части кода как АР К счастью, перезаписывает членов архива с тем же именем.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top