【问题标题】:Autotools: Final make command in wrong orderAutotools:最终的 make 命令顺序错误
【发布时间】:2013-01-18 23:35:40
【问题描述】:

我使用 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 ?

非常感谢

【问题讨论】:

    标签: gnu autotools


    【解决方案1】:

    看来您只是希望../fftw++-1.09/fftw++.o 出现在-lsolcpp -lcfsqp 之后,在这种情况下,您只需在SOLCPP_LIBS 之后列出FFTWPP_LIBS

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-09-06
      • 1970-01-01
      • 1970-01-01
      • 2017-04-06
      • 1970-01-01
      • 2011-02-13
      • 1970-01-01
      • 2013-01-05
      相关资源
      最近更新 更多