2013-02-04 43 views
0

我使用GNU Autotools来构建/配置我的迷你应用程序。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,然后进行,它会尝试做:

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

看来,你只是想../fftw++-1.09/fftw++.o-lsolcpp -lcfsqp在这种情况下,你只需要列出FFTWPP_LIBSSOLCPP_LIBS后:

test1_LDFLAGS = $(GENERAL_LIBD) $(SOLCPP_LIBS) $(FFTWPP_LIBS) $(GSL_LIBS) $(FFTW3_LIBS)