Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ Qt
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
dzukp
0 / 0 / 0
Регистрация: 20.02.2015
Сообщений: 9
1

Неизвестная опция компилятора '-Wl'

20.02.2015, 15:23. Просмотров 1993. Ответов 10
Метки нет (Все метки)

ОС Windows XP SP3. Установил mingw. Скачал Qt-4.4.0 и Qwt-6.0.1.

В консоле Qt-4.4.0 выполняю:


C++
1
2
qmake qwt.pro
mingw32-make

В результате ошибка

C++
1
unrecognized command line option '-Wl'
http://pastebin.com/7SpQy49N
http://pastebin.com/RaELkQJw

Этот же самый проект собирается в ОС Ubuntu 12.04

Удалось собрать этот проект с Qt-4.8.6, но там другие проблемы описаны в другой теме.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.02.2015, 15:23
Ответы с готовыми решениями:

Опция -shared компилятора g++, где она прописана?
То есть ситуация: я кропаю dll (создадим пустой файл test.cpp, он...

Переименовать и переместить конечный файл (опция DESTDIR)
Здравствуйте! Что написать в pro-файле, чтобы переименовать конечный файл и...

Неизвестная ошибка
При самом простом наборе столкнулся с ошибкой,не знаю в чём причина.Всё...

Отсутствует опция "GUI приложение Qt" в убунту
В разделе приложения нет "Gui приложение QT". Скачал с оф сайта . Установил, но...

Ошибки компилятора
Добрый день,сегодня наткнулся на ошибки при попытках собрать базовый проект....

10
RazrFalcon
1386 / 1243 / 262
Регистрация: 10.11.2013
Сообщений: 3,763
20.02.2015, 15:56 2
Цитата Сообщение от dzukp Посмотреть сообщение
-Wl
опция -Wl есть только под линем. Обычно ее вместе с rpath используют.
0
Evg
Эксперт CАвтор FAQ
19289 / 7148 / 528
Регистрация: 30.03.2009
Сообщений: 20,000
Записей в блоге: 30
21.02.2015, 15:19 3
Цитата Сообщение от RazrFalcon Посмотреть сообщение
опция -Wl есть только под линем
У меня есть и под виндой (gcc-4.6.3). Опция не делает ничего умного, она просто передаёт дополнительные аргументы линкеру. Так что для порядку хотелось бы видеть полную строку запуска gcc
0
dzukp
0 / 0 / 0
Регистрация: 20.02.2015
Сообщений: 9
27.02.2015, 12:20  [ТС] 4
Цитата Сообщение от Evg Посмотреть сообщение
У меня есть и под виндой (gcc-4.6.3)
В Убунте у меня тоже gcc-4.6.3
На Windows 4.8.1 (mingw32-gcc --version)

Видимо необходимо поставить mingw с gcc-4.6.3.

Пытался найти описание опции -Wl. Здесь нет. Где можно посмотреть?

хотелось бы видеть полную строку запуска gcc
Могу показать вывод сборки qtcreator. Где посмотреть строку запроса gcc?

Bash
1
2
3
4
5
6
7
8
12:13:50: Запускается: «C:\MinGW\bin\mingw32-make.exe» 
C:/MinGW/bin/mingw32-make.exe -f Makefile.Debug
mingw32-make.exe[1]: Entering directory 'C:/PROEKT/scada2/src_noqwt-build-desktop-Qt_4_4_0_dbg'
g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -mthreads -Wl -Wl,-subsystem,windows -o bin\scada_dbg.exe object_script.scada_dbg.Debug  -L"c:\Qt\4.4.0\lib" -lmingw32 -lqtmaind -L ../lib/ -lQtScriptd4 -lQtSvgd4 -lQtSqld4 -lQtNetworkd4 -lQtUiToolsd -lQtXmld4 -lQtGuid4 -lQtCored4
Makefile.Debug:854: recipe for target 'bin\scada_dbg.exe' failed
mingw32-make.exe[1]: Leaving directory 'C:/PROEKT/scada2/src_noqwt-build-desktop-Qt_4_4_0_dbg'
Makefile:34: recipe for target 'debug' failed
g++: error: unrecognized command line option '-Wl'
0
Evg
Эксперт CАвтор FAQ
19289 / 7148 / 528
Регистрация: 30.03.2009
Сообщений: 20,000
Записей в блоге: 30
27.02.2015, 14:53 5
Цитата Сообщение от dzukp Посмотреть сообщение
Где посмотреть строку запроса gcc?
Да в твоей же выдаче она и есть, только там g++ запускается, а не gcc. И проблема с опцией "-Wl", а правильная опция должна выглядеть как "-Wl,<argument>" (т.е. там запятая должна присутствовать)

Добавлено через 2 минуты
Цитата Сообщение от dzukp Посмотреть сообщение
Пытался найти описание опции -Wl. Здесь нет. Где можно посмотреть?
Здесь её нет, потому что ты читаешь описание по препроцессору cpp. https://gcc.gnu.org/onlinedocs/gcc-4...l#Link-Options в самом конце
0
dzukp
0 / 0 / 0
Регистрация: 20.02.2015
Сообщений: 9
27.02.2015, 15:29  [ТС] 6
Цитата Сообщение от Evg Посмотреть сообщение
только там g++ запускается
Это же правильно. Ведь код на С++, а не С.

Цитата Сообщение от Evg Посмотреть сообщение
проблема с опцией "-Wl", а правильная опция должна выглядеть как "-Wl,<argument>"
И как же мне от этого избавится?

Посмотрел здесь для версии 4.8.1 опция -Wl имеется. Значит компилятор менять не надо.
0
Evg
Эксперт CАвтор FAQ
19289 / 7148 / 528
Регистрация: 30.03.2009
Сообщений: 20,000
Записей в блоге: 30
27.02.2015, 15:35 7
Цитата Сообщение от dzukp Посмотреть сообщение
И как же мне от этого избавится?
Очевидно, удалить из Makefile'ов

Цитата Сообщение от dzukp Посмотреть сообщение
Посмотрел здесь для версии 4.8.1 опция -Wl имеется. Значит компилятор менять не надо
Нету там такой опции, там есть "-Wl," (с запятой, а у тебя опция без запятой)

И под линуксом такой опции нет

Код
$ gcc t.c -Wl
cc1: error: unrecognized command line option "-Wl"

$ gcc t.c -Wl,-t
<ok>
0
dzukp
0 / 0 / 0
Регистрация: 20.02.2015
Сообщений: 9
27.02.2015, 15:43  [ТС] 8
Цитата Сообщение от Evg Посмотреть сообщение
Очевидно, удалить из Makefile'ов
Тык Makefile qmake делает. Надо как то указать qmake, чтобы он не добавлял эти опции.
0
Evg
Эксперт CАвтор FAQ
19289 / 7148 / 528
Регистрация: 30.03.2009
Сообщений: 20,000
Записей в блоге: 30
27.02.2015, 15:52 9
Цитата Сообщение от dzukp Посмотреть сообщение
Надо как то указать qmake, чтобы он не добавлял эти опции
Ну тут я уже ничем не могу помочь, я с qt никогда не работал

Добавлено через 5 минут
Под линуксом в каталоге /opt/qt5/mkspecs есть куча шаблонов, из которых генерируется Makefile. Наверняка там можно поправить и под виндой
0
dzukp
0 / 0 / 0
Регистрация: 20.02.2015
Сообщений: 9
27.02.2015, 16:38  [ТС] 10
Нашел шаблон qt-4.4.0/mkspecs/win32-g++/qmake.conf
Там есть строка
Bash
1
QMAKE_LFLAGS_EXCEPTIONS_ON = -mthreads -Wl
В сгенерированом makefile есть
Bash
1
LFLAGS        =        -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -Wl,-s -mthreads -Wl -Wl,-subsystem,windows
Попробую удалить строку из шаблона

Добавлено через 20 минут
Помогло.

Теперь другие ошибки

Bash
1
2
3
4
5
6
7
8
g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -Wl,-s -Wl,-subsystem,windows -o bin\scada.exe object_script.scada.Release  -L"c:\Qt\4.4.0\lib" -lmingw32 -lqtmain -L ../lib/ -lQtScript4 -lQtSvg4 -lQtSql4 -lQtNetwork4 -lQtUiTools -lQtXml4 -lQtGui4 -lQtCore4
c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/bin/ld.exe: warning: cannot find entry symbol nable-stdcall-fixup; defaulting to 00401000
c:\Qt\4.4.0\lib/libqtmain.a(qtmain_win.o):qtmain_win.cpp:(.text+0x26): undefined reference to `__gxx_personality_sj0'
c:\Qt\4.4.0\lib/libqtmain.a(qtmain_win.o):qtmain_win.cpp:(.text+0x39): undefined reference to `_Unwind_SjLj_Register'
c:\Qt\4.4.0\lib/libqtmain.a(qtmain_win.o):qtmain_win.cpp:(.text+0x1b4): undefined reference to `_Unwind_SjLj_Unregister'
c:\Qt\4.4.0\lib/libqtmain.a(qtmain_win.o):qtmain_win.cpp:(.text+0x3f5): undefined reference to `_Unwind_SjLj_Resume'
c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/bin/ld.exe: c:\Qt\4.4.0\lib/libqtmain.a(qtmain_win.o): bad reloc address 0xb in section `.text$_ZN7QVectorIPcE4freeEP16QVectorTypedDataIS0_E[__ZN7QVectorIPcE4freeEP16QVectorTypedDataIS0_E]'
collect2.exe: error: ld returned 1 exit status
0
Evg
Эксперт CАвтор FAQ
19289 / 7148 / 528
Регистрация: 30.03.2009
Сообщений: 20,000
Записей в блоге: 30
27.02.2015, 16:49 11
Проблема в опции -enable-stdcall-fixup. В описании текущего gcc я не нашёл, но в старых gcc'ях точно помню опцию -e<param>. Т.е. данная опция распозналась как -e с параметром nable-stdcall-fixup, что и привело к выдаче ошибки "cannot find entry symbol nable-stdcall-fixup" со стороны линкера

Судя по гуглу опция -enable-stdcall-fixup является опцией линкера, а потому в компилятор надо подавать -Wl,-enable-stdcall-fixup

В любом случае ошибки вида "undefined reference to `_Unwind_SjLj_Register'" говорят о каком-то некомплектном компиляторе. Эти символы должны быть во внутрикомпиляторных библиотеках
0
27.02.2015, 16:49
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.02.2015, 16:49

Компиляция С++ компилятора
Здравствуйте. Интересует возможность портирования компилятора С++ на платформу...

Настройка 64 битного компилятора
Друзья, Создаю приложение которое должен работать с большими массивами с...

Добавление компилятора в проект
Здравствуйте. Подскажите, если уже создан проект, можно ли добавить к нему...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru