Correcting the GCC command line ordering using Automake

后端 未结 2 864
情深已故
情深已故 2021-02-14 09:55

I have an autotools project that compiles just fine on the Mac, but under Linux (Ubuntu 12.04.1 LTS) the command lines passed to gcc have the libraries out of order

2条回答
  •  青春惊慌失措
    2021-02-14 10:36

    I solved a similar problem. The ./configure script in question was unable to complete a check for presence of a function due to a missing symbol. If I added the correct library to $LDFLAGS or such like, it was added before the .c file and the library was ignored.

    The names of functions to check are first added to ac_func_list and then there is a loop in the body of the ./configure that for each of them calls ac_fn_c_check_func () and that in turns calls ac_fn_c_try_link ()

    the checking function ac_fn_c_try_link () uses a command of this pattern:

    ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS \
             $LDFLAGS conftest.$ac_ext $LIBS >&5'
    

    $LDADD is completely ignored here. Therefore the only solution here is to add the -l flags to variable $LIBS.

提交回复
热议问题