1. IMPORTANT - 11/13/2015: In light of a possible breach we have scrubbed all passwords. You will need to request a password reset through the site. Click here for more information.

Make file error - /usr/bin/ld: libfab.a(fab.c.o): undefined reference to symbol 'sqrtf@@GLIBC_2.0'

Discussion in 'General Linux' started by amlavigne, Dec 3, 2013.

  1. amlavigne

    amlavigne New Member

    Dec 3, 2013
    Likes Received:

    I am trying to install fabmodules from this MIT website: http://kokompe.cba.mit.edu/downloads.html

    When I want to run the make fab command, the process strops and I have this error:

    Linking C executable path_array
    /usr/bin/ld: libfab.a(fab.c.o): undefined reference to symbol 'sqrtf@@GLIBC_2.0'
    /lib/i386-linux-gnu/libm.so.6: error adding symbols: DSO missing from command line
    collect2: error: ld returned 1 exit status

    And the make stops.

    Do you know what it means?

    Here is the make file document I am using:

    # The lines below extract out program names from the cmake cache
    # This is used to automatically generate a documentation page.
    C_ = $(shell sed -n -e 's/;/ /g' \
    -e 's/PROGRAMS:STRING=//gp' \
    C = $(addprefix bin/, $(C_))

    Python_ = $(shell sed -n -e 's/;/ /g' \
    -e 's/PYs:STRING=//gp' \
    Python = $(addprefix bin/, $(Python_))

    scripts_ = $(shell sed -n -e 's/;/ /g' \
    -e 's/SCRIPTS:STRING=//gp' \
    scripts = $(addprefix bin/, $(scripts_))

    GUIs_ = $(shell sed -n -e 's/;/ /g' \
    -e 's/GUIs:STRING=//gp' \
    GUIs = $(addprefix bin/, $(GUIs_))

    PWD := $(shell pwd)

    @echo "Makefile options:"
    @echo " make fab Compile all files and copy scripts from src to bin"
    @echo " make doc Saves command names and docstrings into commands.html"
    @echo " make zip Bundles relevant files in fab.zip"
    @echo " make dist Copies files to Web directory"
    @echo " make install Copies files to /usr/local/bin"
    @echo " make clean Removes compiled executables and scripts from bin"

    @echo "Building with CMake"
    @mkdir -p build

    @cd build; \
    cmake ../src; \
    make; \
    make install | sed "s@$(PWD)/src/../@@g"

    # @sed -i '' "s/REVISION = None/REVISION = '`hg id --num`:`hg id --id`'/g" \
    # bin/koko/about.py

    doc: commands.html
    commands.html: fab
    @# Dump all of the command names
    @echo " Storing command names"
    @echo "<html>\n<body>\n<pre>\ncommands:" > commands.html
    @for name in $(C) $(scripts) $(GUIs); do \
    echo " "$$name >> commands.html; \

    @echo "" >> commands.html

    @# Dump command docstrings
    @echo " Storing command docstrings"
    @for name in $(C) $(scripts) ; do \
    ./$$name >> commands.html; \
    echo "" >> commands.html; \

    zip: commands.html
    rm -f fab_src.zip
    rm -rf src/apps/dist
    rm -rf src/apps/build
    zip -r fab_src.zip commands.html Makefile src

    dist: zip
    cp fab_src.zip ../../Web/fab_src.zip
    cp commands.html ../../Web/
    sed -e "s/Snapshot from [^\)]*/Snapshot from `date '+%B %d, %Y, %I:%M%p'`/g" \
    ../../Web/downloads.html > ../../Web/_downloads.html
    mv ../../Web/_downloads.html ../../Web/downloads.html

    install: fab
    @echo "Installing executables and scripts to /usr/local/bin"
    @if [ -e "/usr/local/bin/fab_send" ]; \
    then \
    mv /usr/local/bin/fab_send /usr/local/bin/fab_send.old; \
    @cp -r bin/* /usr/local/bin/
    @if [ -e "/usr/local/bin/fab_send.old" ]; \
    then \
    mv /usr/local/bin/fab_send /usr/local/bin/fab_send.new; \
    mv /usr/local/bin/fab_send.old /usr/local/bin/fab_send; \
    echo "Note:"; \
    echo " Pre-existing fab_send has not been overwritten, and"; \
    echo " the new version of fab_send has been named fab_send.new"; \
    @echo "Copying shared libraries to /usr/local/lib"
    @cp -r lib/* /usr/local/lib/

    @echo "Deleting build directory"
    @rm -rf build
  2. arochester

    arochester Super Moderator Staff Member

    Nov 23, 2012
    Likes Received:
    I only partly understand this - so I'll gladly step aside for an answer from somebody who knows what they are talking about.

    means that you are missing something which points to the library.

    Out of interest are you using a 32 bit computer or a 64 bit machine? You can run some 32 bit apps on a 64 bit computer but you need to correct 32 bit libraries installed.

Share This Page