, учитывая некоторый исходный файл test.cpp Я хотел бы создать общую библиотеку libtest.so. Я пытаюсь сделать это в рамках файла automake, но я не могу заставить его работать.Как создать общую библиотеку (.so) в сценарии automake?
Например при г ++ я делаю следующее:
g++ -shared -fPIC test.cpp -o libtest.so
тогда я могу создать другой файл, который будет зависеть от общей библиотеки следующим образом:
g++ mytest.cpp libtest.so -o blah
Я прочитал, что automake поддерживает только создание разделяемых библиотек через libtool. Я попытался заставить мой automake scriupt работать следующим образом, но он, кажется, не производит .so. Ближайший я получил для того, чтобы произвести .La и файл .o:
в configure.ac:
AC_ENABLE_SHARED
AC_DISABLE_STATIC
AC_PROG_LIBTOOL(libtool)
в Makefile.am
lib_LTLIBRARIES=libtest.la
libtest_la_SOURCES=test.cpp
libtest_la_CFLAGS=-fPIC
libtest_la_CPPFLAGS=-fPIC
libtest_la_CXXFLAGS=-fPIC
libtest_la_LDFLAGS= -shared -fPIC
Может кто-то дайте мне пример построения .so на основе вышеизложенного?
Вы должны заменить AC_PROG_LIBTOOL на LT_INIT –
... после написания этого я понял, что вышеописанное фактически создало файл .so в скрытой .libs-директории моего исходного каталога. Надеюсь, это поможет кому-то еще, кто задается вопросом об этом. – skimon
Может ли кто-нибудь опубликовать полные примеры файлов здесь? Не исходные файлы, а configure.ac и Makefile.am. Я не могу сделать эту работу, используя информацию в этой теме. –