cho một số tệp nguồn test.cpp Tôi muốn tạo thư viện libtest.so được chia sẻ. Tôi đang cố gắng để làm điều này trong phạm vi của một tập tin automake tuy nhiên tôi không thể có vẻ để có được điều này để làm việc.Cách tạo thư viện được chia sẻ (.so) trong tập lệnh tự động?
Ví dụ dưới g ++ Tôi làm như sau:
g++ -shared -fPIC test.cpp -o libtest.so
sau đó tôi có thể tạo một tập tin đó sẽ phụ thuộc vào các thư viện chia sẻ như sau:
g++ mytest.cpp libtest.so -o blah
Tôi đã đọc rằng automake chỉ hỗ trợ việc chia sẻ thư viện thông qua libtool. Tôi đã cố gắng để có được tự động của tôi scriupt để làm việc như sau nhưng nó dường như không bao giờ sản xuất một .so. Gần nhất tôi đã nhận được là cho nó để tạo ra một .la và .o file:
trong configure.ac:
AC_ENABLE_SHARED
AC_DISABLE_STATIC
AC_PROG_LIBTOOL(libtool)
trong 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
Có thể một ai đó cho tôi một ví dụ về xây dựng một .so dựa trên những điều trên?
Bạn nên thay thế AC_PROG_LIBTOOL bằng LT_INIT –
Bah ... sau khi viết điều này tôi nhận ra rằng trên thực tế đã tạo tệp .so trong thư mục .libs ẩn của thư mục nguồn của tôi. Hy vọng điều này sẽ giúp người khác tự hỏi về điều này. – skimon
Ai đó có thể đăng các ví dụ hoàn chỉnh của các tệp ở đây? Không phải các tệp nguồn, nhưng là configure.ac và Makefile.am. Tôi không thể thực hiện công việc này bằng cách sử dụng thông tin trong chuỗi này. –