我使用GNU Autotools来构建/配置我的迷你应用程序。
这是我的configure.ac:
AC_INIT([Tutorial Program], [1.0])
AM_INIT_AUTOMAKE
AC_PROG_CXX
AC_SUBST([GENERAL_INCD], ["-I../Src"])
AC_SUBST([GENERAL_LIBD], ["-L../../Lib"])
AC_SUBST([SOLCPP_LIBS], ["-lsolcpp -lcfsqp"])
AC_SUBST([FFTWPP_INCD], ["-I../fftw++-1.09"])
AC_SUBST([FFTWPP_LIBS], ["../fftw++-1.09/fftw++.o"])
PKG_CHECK_MODULES([GSL], [gsl])
PKG_CHECK_MODULES([FFTW3], [fftw3])
AC_CONFIG_FILES([Makefile])
AC_OUTPUT
这是我的Makefile.am:
bin_PROGRAMS = test1
test1_SOURCES = test1.cpp
test1_CPPFLAGS = $(GENERAL_INCD) $(FFTWPP_INCD) $(GSL_CFLAGS) $(FFTW3_CFLAGS)
test1_LDFLAGS= $(GENERAL_LIBD) $(FFTWPP_LIBS) $(SOLCPP_LIBS) $(GSL_LIBS) $(FFTW3_LIBS)
问题是当我运行./configure然后make时,它会尝试执行:
g++ -g -O2 -L../../Lib ../fftw++-1.09/fftw++.o -lsolcpp -lcfsqp -lgsl -lgslcblas -lm -lfftw3 -lm -o test1 test1-test1.o
test1-test1.o
虽然正确的预期命令是以下命令:
g++ -O2 test1-test1.o -o test1 -L../../Lib -lsolcpp -lcfsqp ../fftw++-1.09/fftw++.o -lgsl -lgslcblas -lm -lfftw3 -lm
如何更改configure.ac和Makefile.am?
非常感谢
答案 0 :(得分:0)
您似乎只希望在../fftw++-1.09/fftw++.o
之后-lsolcpp -lcfsqp
来到FFTWPP_LIBS
,在这种情况下您只需要在SOLCPP_LIBS
之后列出test1_LDFLAGS = $(GENERAL_LIBD) $(SOLCPP_LIBS) $(FFTWPP_LIBS) $(GSL_LIBS) $(FFTW3_LIBS)
:
{{1}}