Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

Collect2.exe:-1: error: error: ld returned 1 exit status [SOLVED]



  • I have installed Qt 5.1.1 on my windows 8 machine. I am compiling with mingw and want in link to gsl.
    I set my paths to: C:\Program Files (x86)\GSL-1.13;C:\Qt\Tools\mingw48_32\bin

    My pro file is QT += core

    TARGET = gsl_test
    CONFIG += console
    CONFIG -= app_bundle
    CONFIG +=qt

    TEMPLATE = app

    SOURCES += main.cpp

    INCLUDEPATH += C://ProgramFiles(x86)//GSL-1.13//include
    LIBS +=-LC://ProgramFiles(x86)//GSL-1.13//lib -lgsl -lgslcblas -lm

    main.cpp

    #include <iostream>
    #include <iomanip>
    #include <fstream>
    #include <math.h>
    using namespace std;

    #include <gsl/gsl_sf_bessel.h> // gsl Bessel special function header file

    int
    main (void)
    {
    double x = 5.0; // just a random test value

    double y = gsl_sf_bessel_J0 (x); // see the GSL manual for details

    cout << "J0(" << x << ") = "
    << setprecision(18) << setw(20) << y << endl;

    return 0;
    }

    The errors that I get are,

    C:\Qt\Tools\QtCreator\bin\untitled\main.cpp:-1: error: undefined reference to `gsl_sf_bessel_J0'

    collect2.exe:-1: error: error: ld returned 1 exit status

    The compile output is,
    18:07:33: Running steps for project untitled...
    18:07:33: Configuration unchanged, skipping qmake step.
    18:07:33: Starting: "C:\Qt\Tools\mingw48_32\bin\mingw32-make.exe"
    C:/Qt/Tools/mingw48_32/bin/mingw32-make -f Makefile.Release
    mingw32-make[1]: Entering directory 'C:/Qt/Tools/QtCreator/bin/build-untitled-Desktop_Qt_5_1_1_MinGW_32bit-Release'
    g++ -Wl,-s -Wl,-subsystem,console -mthreads -o release\gsl_test.exe release/main.o -lglu32 -lopengl32 -lgdi32 -luser32 -LC://ProgramFiles(x86)//GSL-1.13//lib -lgsl -lgslcblas -lm -LC:\Qt\5.1.1\mingw48_32\lib -lQt5Gui -lQt5Core
    release/main.o:main.cpp:(.text.startup+0x23): undefined reference to `gsl_sf_bessel_J0'
    collect2.exe: error: ld returned 1 exit status
    Makefile.Release:77: recipe for target 'release\gsl_test.exe' failed
    mingw32-make[1]: *** [release\gsl_test.exe] Error 1
    mingw32-make[1]: Leaving directory 'C:/Qt/Tools/QtCreator/bin/build-untitled-Desktop_Qt_5_1_1_MinGW_32bit-Release'
    makefile:34: recipe for target 'release' failed
    mingw32-make: *** [release] Error 2
    18:07:34: The process "C:\Qt\Tools\mingw48_32\bin\mingw32-make.exe" exited with code 2.
    Error while building/deploying project untitled (kit: Desktop Qt 5.1.1 MinGW 32bit)
    When executing step 'Make'

    When I compiled this program using the command prompt with just MinGW I had an issue with permissions denied and would not create the .exe file unless I ran the command prompt as administrator. I ran qt creator as administrator but still got the same errors.

    Anyone have any ideas on what it causing these errors?


  • Lifetime Qt Champion

    Hi and welcome to devnet,

    The problem probably comes from the space in your linker paths. General rule of thumb on Windows: no spaces in paths, they're evil. Even when quoting them properly, they can be problematic.

    So you have two options there:

    • Reinstall your dependencies in folders without spaces
    • Use 8.3 names (you can get them using dir /x in a cmd prompt)

    If you still have symbols error, check that you link to the correct libraries

    Hope it helps



  • Yep, that did the trick.

    Thanks.


  • Lifetime Qt Champion

    You're welcome !

    Now that it building correctly, please update the thread title prepending [solved] so other forum users may know a solution has been found :)


  • Banned

    This post is deleted!

Log in to reply