0
我很新的自動工具,它看起來像我有libtool的一個問題 - 它不會構建一個共享庫,使代替靜態的......問題編譯具有自動工具共享庫/插件
這是我的configure.ac的樣子:
AC_PREREQ([2.67])
AC_INIT([helloworld], [1.0], [...])
AM_INIT_AUTOMAKE([foreign])
LT_INIT
# Checks for programs.
AC_PROG_CXX
AC_PROG_LIBTOOL
# Checks for header files.
AC_CHECK_HEADERS([alloca.h inttypes.h stdint.h])
AC_CONFIG_FILES([Makefile])
AC_OUTPUT
和Makefile.am:
noinst_LTLIBRARIES=helloworld.la
helloworld_la_CXXFLAGS=-w -DLINUX ...
helloworld_la_LDFLAGS=-avoid-version -module -shared -export-dynamic
# List of source files
helloworld_la_SOURCES=helloworld.cpp ...
有什麼問題嗎?
感謝您的任何幫助。
可能與您的問題無關,但LT_INIT是AC_PROG_LIBTOOL的替代品,因此您可以從configure.ac中刪除AC_PROG_LIBTOOL –
爲什麼要嘗試構建共享便利庫?你打算使用noinst_LTLIBRARIES而不是lib_LTLIBRARIES嗎? –
-DLINUX有幾個問題。 1)它屬於helloworld_la_CPPFLAGS,因爲它用於預處理器。 2)您不應該將您的編譯基於平臺,而是基於特定功能。 3)如果您忽略規則2,則應該在配置時確定平臺,而不是將其硬編碼到Makefile.am中。 –