Russian Qt Forum

Qt => Установка, сборка, отладка, тестирование => Тема начата: daenux от Ноябрь 22, 2010, 18:51



Название: :: error: collect2: ld returned 1 exit status
Отправлено: daenux от Ноябрь 22, 2010, 18:51
Здравствуйте товарищи, говарит Москва!

При компиляции минимального приложения:
Код:
#include <QtGui/QApplication>

int main (int argc, char *argv[])
{
    QApplication sapp(argc, argv);

    return sapp.exec();
}

Выдаються следующие ошибки:
Код:
:: error: cannot find -lqtmaind
:: error: cannot find -lQtGuid4
:: error: cannot find -lQtCored4
:: error: collect2: ld returned 1 exit status
В показанной последовательности...

Библиотеки Qt собирали под Windows XP x86_32bit...
Конфигурировали следующим образом:
Код:
configure.exe -release -opensource -developer-build -no-qt3support -platform win32-g++ -plugin-sql-psql -I /local/pgsql/include -L /local/pgsql/lib
Затем компилировали:
Код:
mingw32-make
(Перед тем как собирать библиотеки Qt, мы собрал PostgreSQL из исходников следующими коммандами:
Код:
configure --without-zlib
make
make install
- все прошло прекрасно...)

Затем собрали Qt Creator из исходников, вот таким вот образом:
Код:
qmake
mingw32-make -i
(флаг -i поставили потому что собираеться с ошибками - связанными с Qt Declarative, т.е. для игнорирования)
Замечание: Мы и бинарный исполняемый установщик Qt Creator устанавливали, результат тот же...

Несобираються проекты!

Что за ошибки? Что делать?

Спасибо за внимание!


Название: Re: :: error: collect2: ld returned 1 exit status
Отправлено: Пантер от Ноябрь 22, 2010, 20:33
Определить переменную QTDIR и добавить в PATH путь к QTDIR/bin.


Название: Re: :: error: collect2: ld returned 1 exit status
Отправлено: daenux от Ноябрь 22, 2010, 20:36
Мы добавили пути напрямую в переменную окружения PATH: C:\MinGW\bin;C:\QtLibs\bin;C:\QtLibs\include;C:\QtLibs\lib

Так не подойдет?


Название: Re: :: error: collect2: ld returned 1 exit status
Отправлено: daenux от Ноябрь 22, 2010, 20:40
Мы определили переменную окружения QTDIR следующим образом:
Код:
export QTDIR="C:\QtLibs"
Но все то же самое - ничего не изменилось...


Название: Re: :: error: collect2: ld returned 1 exit status
Отправлено: Пантер от Ноябрь 22, 2010, 20:59
1. C:\QtLibs\include;C:\QtLibs\lib не нужно.
2. Дай сюда вывод echo %PATH%.
3. Как проекты собираете?


Название: Re: :: error: collect2: ld returned 1 exit status
Отправлено: daenux от Ноябрь 22, 2010, 21:05
1. Спасибо, убрали...
2.
Код:
.:/usr/local/bin:/mingw/bin:/bin:/c/WINDOWS/system32:/c/WINDOWS:/c/WINDOWS/System32/Wbem:/c/Program Files/Universal Extractor:/c/Program Files/Universal Extractor/bin:/mingw/bin:/c/QtLibs/bin
3. Проекты собираем в QtCreator - вот к примеру в выше приведенном минимальном проекте выдает указанные ошибки, а если реальный проект - то там уже и sql и xml и все что используеться в подобного рода ошибках появляються...


Название: Re: :: error: collect2: ld returned 1 exit status
Отправлено: daenux от Ноябрь 22, 2010, 21:08
Господин Пантер, если через терминал собирать, т.е. так:
Код:
qmake
make

То жизнь прекрасна!


Название: Re: :: error: collect2: ld returned 1 exit status
Отправлено: daenux от Ноябрь 22, 2010, 21:11
Это значит проблема все так и в QtCreator - только как это исправить?


Название: Re: :: error: collect2: ld returned 1 exit status
Отправлено: daenux от Ноябрь 22, 2010, 21:26
В первый раз откомпилировалось все олично, но в следующих выдает следующее:
Код:
qmake

make
make -f Makefile.Release
make[1]: Entering directory `/d/Projects/sapp'
g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -Wl,-s -mthreads -Wl -Wl,-subsystem,windows -o release/sapp.exe release/sapp.o  -L'c:/QtLibs/lib' -lmingw32 -lqtmain -lQtGui4 -lQtCore4 -LC:/MinGW/msys/1.0/local/pgsql/lib/
make[1]: Leaving directory `/d/Projects/sapp'
c:/mingw/bin/../lib/gcc/mingw32/4.5.0/../../../../mingw32/bin/ld.exe: cannot open output file release/sapp.exe: Permission denied
collect2: ld returned 1 exit status
make[1]: *** [release/sapp.exe] Error 1
make: *** [release] Error 2

Как то странно...


Название: Re: :: error: collect2: ld returned 1 exit status
Отправлено: Пантер от Ноябрь 22, 2010, 21:27
Это значит, что приложение sapp.exe загружено (посмотри в диспетчере задач).


Название: Re: :: error: collect2: ld returned 1 exit status
Отправлено: Пантер от Ноябрь 22, 2010, 21:30
Господин Пантер
Господ давно отменили, камрад. :)
Это значит проблема все так и в QtCreator - только как это исправить?
Да, дело в нем. В настройках на вкладке Qt4 нужно все правильно настроить.


Название: Re: :: error: collect2: ld returned 1 exit status
Отправлено: daenux от Ноябрь 22, 2010, 21:33
Точно, ажно чатыре процесса висело, мы их убили, запустили проект и он сново в процессах!

Спасибо дорогой Пантер!!!

В QtCreator мы все вроде бы настроили верно, сейчас покажем...


Название: Re: :: error: collect2: ld returned 1 exit status
Отправлено: daenux от Ноябрь 22, 2010, 21:41
 (http://imglink.ru/thumbnails/22-11-10/e4cb3434c62f719dd2f91746d10ff826.jpg) (http://imglink.ru/show-image.php?id=ece8f3b24fc43123d6972ae27955f0a3)

Вроде так как обычно, может что другое показать?


Название: Re: :: error: collect2: ld returned 1 exit status
Отправлено: daenux от Ноябрь 22, 2010, 21:46
 (http://imglink.ru/thumbnails/22-11-10/ee05cc5955388a125f313229c5b1ab9b.jpg) (http://imglink.ru/show-image.php?id=9b525d3f08c93c29b28bcc835d46772f)

Как видно с путями все вроде бы нормально...


Название: Re: :: error: collect2: ld returned 1 exit status
Отправлено: Пантер от Ноябрь 22, 2010, 21:48
А покажи вкладку настройки проекта.


Название: Re: :: error: collect2: ld returned 1 exit status
Отправлено: daenux от Ноябрь 22, 2010, 21:53
 (http://imglink.ru/thumbnails/22-11-10/0c63125a6b08658d5fbd29dde8484920.jpg) (http://imglink.ru/show-image.php?id=c3d1abd6ef84fb40fb923d980329b714)  (http://imglink.ru/thumbnails/22-11-10/8dd0dde0516f88da61c1d9bbfedc523d.jpg) (http://imglink.ru/show-image.php?id=cff8fec355f4de44872cba857e93f56d)  (http://imglink.ru/thumbnails/22-11-10/b00ff6110791216c4003dbb2bfbd15bb.jpg) (http://imglink.ru/show-image.php?id=c20aa453dfa8e481103541dafbb594dc)


Название: Re: :: error: collect2: ld returned 1 exit status
Отправлено: BRE от Ноябрь 22, 2010, 22:03
Мы добавили пути...

Мы определили переменную окружения...

1. Спасибо, убрали...

Такой не скромный вопрос, почемы "Мы"? Вас там несколько?  ;)


Название: Re: :: error: collect2: ld returned 1 exit status
Отправлено: Пантер от Ноябрь 22, 2010, 22:07
Не, я имел ввиду настройки текущего проекта. В самом окне креатора слева 5 кнопка.


Название: Re: :: error: collect2: ld returned 1 exit status
Отправлено: daenux от Ноябрь 22, 2010, 22:10
BRE, а как же, нас тут трое - Я, Lenovo и ASUS!


Название: Re: :: error: collect2: ld returned 1 exit status
Отправлено: daenux от Ноябрь 22, 2010, 22:12
Только что попытались собрать реальный проект, вот вывод stderr:
Код:
c:/mingw/bin/../lib/gcc/mingw32/4.5.0/../../../../mingw32/bin/ld.exe: cannot find -lqtmaind
c:/mingw/bin/../lib/gcc/mingw32/4.5.0/../../../../mingw32/bin/ld.exe: cannot find -lQtSqld4
c:/mingw/bin/../lib/gcc/mingw32/4.5.0/../../../../mingw32/bin/ld.exe: cannot find -lQtXmld4
c:/mingw/bin/../lib/gcc/mingw32/4.5.0/../../../../mingw32/bin/ld.exe: cannot find -lQtGuid4
c:/mingw/bin/../lib/gcc/mingw32/4.5.0/../../../../mingw32/bin/ld.exe: cannot find -lQtCored4
collect2: ld returned 1 exit status
mingw32-make[1]: *** [debug/corred_basis.exe] Error 1
mingw32-make: *** [debug] Error 2


Название: Re: :: error: collect2: ld returned 1 exit status
Отправлено: Пантер от Ноябрь 22, 2010, 22:15
Тьфу, блин. Сразу и не заметил. У тебя Qt собрана только в релизе, а приложение пытаешься в дебаге собрать.


Название: Re: :: error: collect2: ld returned 1 exit status
Отправлено: daenux от Ноябрь 22, 2010, 22:18
Ахахахаха, а мы тут скриншоты делали...

Вот огромнейшее спасибо!!!


Название: Re: :: error: collect2: ld returned 1 exit status
Отправлено: daenux от Ноябрь 22, 2010, 22:22
Значит нужно ставить флаг при конфигурировании: -debug-and-release!


Название: Re: :: error: collect2: ld returned 1 exit status
Отправлено: daenux от Ноябрь 22, 2010, 22:24
Теперь можно и поспать, а то больше суток вожусь с компиляцией исходников...

Ух...


Название: Re: :: error: collect2: ld returned 1 exit status
Отправлено: daenux от Ноябрь 22, 2010, 22:25
Тема закрываеться...

Всем спокойной ночи!