Поиск:

Ответ в темуСоздание новой темы Создание опроса
> QT Creator, опции компилятора и линковщика 
V
    Опции темы
Alkash
  Дата 22.3.2012, 18:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


коллекционер жизни
**


Профиль
Группа: Участник
Сообщений: 516
Регистрация: 5.7.2004
Где: /

Репутация: нет
Всего: нет



Всем здравствуйте. В Qt Creator 64 бита - надо собрать проект, начатый в 32 битной системе. 
Соответственно - при линковке получаю:
Код

/usr/bin/ld: i386 architecture of input file `main.o' is incompatible with i386:x86-64 output

И так во всех юнитах, что в принципе естественно.
Линкует:
Код

g++ -m64 -Wl,-O1 -o Prog main.o     -L/usr/lib/x86_64-linux-gnu -lsqlite3 -lQtGui -lQtCore -lpthread 


Как скормить линковщику -m32 вместо m64? 
Пробовал указать в .pro файле, в QMAKE_CXXFLAGS = -m32 - безрезультатно.
Файл .pro
Код

QT       += core gui

TARGET = CCafe
TEMPLATE = app


SOURCES += main.cpp\
        ccafewnd.cpp \
    stations.cpp \
    ccafe.cpp
LIBS += -lsqlite3
QMAKE_CFLAGS = -I/usr/include/

QMAKE_CXXFLAGS = -I/usr/include/ \
                 -I/usr/include/c++/4.6 \
                 -m32

HEADERS  += ccafewnd.h \
    stations.h \
    ccafe.h \
    ccafe_struct.h

FORMS    += ccafewnd.ui



Это сообщение отредактировал(а) Alkash - 22.3.2012, 18:55


--------------------
Подпись >> /dev/null
PM MAIL ICQ MSN   Вверх
boostcoder
Дата 22.3.2012, 19:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 4
Всего: 110



Цитата(Alkash @  22.3.2012,  18:54 Найти цитируемый пост)
проект, начатый в 32 битной системе

это что означает?
объектники ты собрал в 32ух битной, а линковать пытаешься в 64ех битной? smile 
PM WWW   Вверх
Alkash
Дата 22.3.2012, 19:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


коллекционер жизни
**


Профиль
Группа: Участник
Сообщений: 516
Регистрация: 5.7.2004
Где: /

Репутация: нет
Всего: нет



Нет. Нет. Нет. Данный проект - открываю на 64 битной системе, тыкаю собрать - и получаю - то что выше. Гугление - не привело к какому либо итогу. Объектники с 32 битной системы - естественно были удалены.

Полный выхлоп:
Код

g++ -c -I/usr/include/ -I/usr/include/c++/4.6 -m32 -O2 -Wall -W -D_REENTRANT -DQT_WEBKIT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++-64 -I../CCafe -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I. -I../CCafe -I. -o ccafewnd.o ../CCafe/ccafewnd.cpp
g++ -c -I/usr/include/ -I/usr/include/c++/4.6 -m32 -O2 -Wall -W -D_REENTRANT -DQT_WEBKIT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++-64 -I../CCafe -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I. -I../CCafe -I. -o stations.o ../CCafe/stations.cpp
g++ -c -I/usr/include/ -I/usr/include/c++/4.6 -m32 -O2 -Wall -W -D_REENTRANT -DQT_WEBKIT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++-64 -I../CCafe -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I. -I../CCafe -I. -o ccafe.o ../CCafe/ccafe.cpp
In file included from ../CCafe/ccafe.cpp:1:0:
../CCafe/ccafe.h:18:1: предупреждение: многострочный комментарий [-Wcomment]
../CCafe/ccafe.h:22:2: предупреждение: многострочный комментарий [-Wcomment]
../CCafe/ccafe.h:43:2: предупреждение: многострочный комментарий [-Wcomment]
../CCafe/ccafe.h:56:2: предупреждение: многострочный комментарий [-Wcomment]
In file included from ../CCafe/ccafe.cpp:1:0:
../CCafe/ccafe.h:76:2: предупреждение: многострочный комментарий [-Wcomment]
../CCafe/ccafe.cpp:92:2: предупреждение: многострочный комментарий [-Wcomment]
../CCafe/ccafe.cpp:367:2: предупреждение: многострочный комментарий [-Wcomment]
../CCafe/ccafe.cpp:563:2: предупреждение: многострочный комментарий [-Wcomment]
../CCafe/ccafe.cpp:874:2: предупреждение: многострочный комментарий [-Wcomment]
g++ -c -I/usr/include/ -I/usr/include/c++/4.6 -m32 -O2 -Wall -W -D_REENTRANT -DQT_WEBKIT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++-64 -I../CCafe -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I. -I../CCafe -I. -o moc_ccafewnd.o moc_ccafewnd.cpp
g++ -m64 -Wl,-O1 -o CCafe main.o ccafewnd.o stations.o ccafe.o moc_ccafewnd.o    -L/usr/lib/x86_64-linux-gnu -lsqlite3 -lQtGui -lQtCore -lpthread 
/usr/bin/ld: i386 architecture of input file `main.o' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `ccafewnd.o' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `stations.o' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `ccafe.o' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `moc_ccafewnd.o' is incompatible with i386:x86-64 output
ccafewnd.o: In function `ccafeWnd::ccafeWnd(QWidget*)':
ccafewnd.cpp:(.text+0x5d): undefined reference to `operator new(unsigned int)'
ccafewnd.o: In function `Ui_ccafeWnd::setupUi(QMainWindow*)':
ccafewnd.cpp:(.text._ZN11Ui_ccafeWnd7setupUiEP11QMainWindow[Ui_ccafeWnd::setupUi(QMainWindow*)]+0xb8): undefined reference to `operator new(unsigned int)'
ccafewnd.cpp:(.text._ZN11Ui_ccafeWnd7setupUiEP11QMainWindow[Ui_ccafeWnd::setupUi(QMainWindow*)]+0x12e): undefined reference to `operator new(unsigned int)'
ccafewnd.cpp:(.text._ZN11Ui_ccafeWnd7setupUiEP11QMainWindow[Ui_ccafeWnd::setupUi(QMainWindow*)]+0x1e7): undefined reference to `operator new(unsigned int)'
ccafewnd.cpp:(.text._ZN11Ui_ccafeWnd7setupUiEP11QMainWindow[Ui_ccafeWnd::setupUi(QMainWindow*)]+0x2a0): undefined reference to `operator new(unsigned int)'
ccafewnd.o:ccafewnd.cpp:(.text._ZN11Ui_ccafeWnd7setupUiEP11QMainWindow[Ui_ccafeWnd::setupUi(QMainWindow*)]+0x35c): more undefined references to `operator new(unsigned int)' follow
ccafe.o: In function `CCafe::get_stations_count()':
ccafe.cpp:(.text+0x308): undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, int)'
make: Выход из каталога `/home/cynic/CCafe/QTCCafe/CCafe-build-desktop'
ccafe.cpp:(.text+0x328): undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, int)'
ccafe.o: In function `CCafe::get_price_count()':
ccafe.cpp:(.text+0x418): undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, int)'
ccafe.cpp:(.text+0x438): undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, int)'
ccafe.o: In function `CCafe::get_admin_count()':
ccafe.cpp:(.text+0x528): undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, int)'
ccafe.o:ccafe.cpp:(.text+0x548): more undefined references to `std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, int)' follow
ccafe.o: In function `std::vector<station, std::allocator<station> >::_M_insert_aux(__gnu_cxx::__normal_iterator<station*, std::vector<station, std::allocator<station> > >, station const&)':
ccafe.cpp:(.text._ZNSt6vectorI7stationSaIS0_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS0_S2_EERKS0_[std::vector<station, std::allocator<station> >::_M_insert_aux(__gnu_cxx::__normal_iterator<station*, std::vector<station, std::allocator<station> > >, station const&)]+0x101): undefined reference to `operator new(unsigned int)'
ccafe.o: In function `std::vector<price, std::allocator<price> >::_M_insert_aux(__gnu_cxx::__normal_iterator<price*, std::vector<price, std::allocator<price> > >, price const&)':
ccafe.cpp:(.text._ZNSt6vectorI5priceSaIS0_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS0_S2_EERKS0_[std::vector<price, std::allocator<price> >::_M_insert_aux(__gnu_cxx::__normal_iterator<price*, std::vector<price, std::allocator<price> > >, price const&)]+0xd7): undefined reference to `operator new(unsigned int)'
ccafe.o: In function `std::vector<admin, std::allocator<admin> >::_M_insert_aux(__gnu_cxx::__normal_iterator<admin*, std::vector<admin, std::allocator<admin> > >, admin const&)':
ccafe.cpp:(.text._ZNSt6vectorI5adminSaIS0_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS0_S2_EERKS0_[std::vector<admin, std::allocator<admin> >::_M_insert_aux(__gnu_cxx::__normal_iterator<admin*, std::vector<admin, std::allocator<admin> > >, admin const&)]+0xd7): undefined reference to `operator new(unsigned int)'
ccafe.o: In function `std::vector<history, std::allocator<history> >::_M_insert_aux(__gnu_cxx::__normal_iterator<history*, std::vector<history, std::allocator<history> > >, history const&)':
ccafe.cpp:(.text._ZNSt6vectorI7historySaIS0_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS0_S2_EERKS0_[std::vector<history, std::allocator<history> >::_M_insert_aux(__gnu_cxx::__normal_iterator<history*, std::vector<history, std::allocator<history> > >, history const&)]+0x111): undefined reference to `operator new(unsigned int)'
ccafe.o: In function `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string<char*>(char*, char*, std::allocator<char> const&)':
ccafe.cpp:(.text._ZNSsC2IPcEET_S1_RKSaIcE[_ZNSsC5IPcEET_S1_RKSaIcE]+0x39): undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Rep::_S_create(unsigned int, unsigned int, std::allocator<char> const&)'
ccafe.cpp:(.text._ZNSsC2IPcEET_S1_RKSaIcE[_ZNSsC5IPcEET_S1_RKSaIcE]+0xb6): undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Rep::_S_create(unsigned int, unsigned int, std::allocator<char> const&)'
moc_ccafewnd.o:(.rodata._ZTV8ccafeWnd[vtable for ccafeWnd]+0xf4): undefined reference to `non-virtual thunk to QWidget::devType() const'
moc_ccafewnd.o:(.rodata._ZTV8ccafeWnd[vtable for ccafeWnd]+0xf8): undefined reference to `non-virtual thunk to QWidget::paintEngine() const'
moc_ccafewnd.o:(.rodata._ZTV8ccafeWnd[vtable for ccafeWnd]+0xfc): undefined reference to `non-virtual thunk to QWidget::metric(QPaintDevice::PaintDeviceMetric) const'
collect2: выполнение ld завершилось с кодом возврата 1
make: *** [CCafe] Ошибка 1
Процесс «/usr/bin/make» завершился с кодом 2.
Возникла ошибка при сборке проекта CCafe (цель: Desktop)
Во время выполнения сборки на этапе «Сборка»


Это сообщение отредактировал(а) Alkash - 22.3.2012, 19:34


--------------------
Подпись >> /dev/null
PM MAIL ICQ MSN   Вверх
boostcoder
Дата 22.3.2012, 19:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 4
Всего: 110



Цитата(Alkash @  22.3.2012,  18:54 Найти цитируемый пост)
i386 architecture of input file `main.o' is incompatible with i386:x86-64 output

это сообщение говорит именно о том, что ты пытаешься линковать i386-объектники на x86_64 архитектуре. так кто кому лжет?

Добавлено через 1 минуту и 38 секунд
Цитата(Alkash @  22.3.2012,  19:31 Найти цитируемый пост)
g++ -c -I/usr/include/ -I/usr/include/c++/4.6 -m32


Цитата(Alkash @  22.3.2012,  19:31 Найти цитируемый пост)
g++ -m64 -Wl,-O1 -o CCafe main.o ccafewnd.o stations.o ccafe.o moc_ccafewnd.o

ну ты чо в самом деле?!
объектники ты собираешь для 32ух битной архитектуры, а линкуешь для 64ех битной!
PM WWW   Вверх
Alkash
Дата 22.3.2012, 19:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


коллекционер жизни
**


Профиль
Группа: Участник
Сообщений: 516
Регистрация: 5.7.2004
Где: /

Репутация: нет
Всего: нет



Цитата(boostcoder @ 22.3.2012,  19:34)
Цитата(Alkash @  22.3.2012,  18:54 Найти цитируемый пост)
i386 architecture of input file `main.o' is incompatible with i386:x86-64 output

это сообщение говорит именно о том, что ты пытаешься линковать i386-объектники на x86_64 архитектуре. так кто кому лжет?

Таки блин. Сношу объектники. Убираю ключ -m32 из QMAKE_FLAGS. Тыкаю собрать....И получаю профит. Мда, сам себя однако обманул.


--------------------
Подпись >> /dev/null
PM MAIL ICQ MSN   Вверх
boostcoder
Дата 22.3.2012, 19:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 4
Всего: 110



из .pro файла удали -m32
PM WWW   Вверх
Alkash
Дата 22.3.2012, 19:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


коллекционер жизни
**


Профиль
Группа: Участник
Сообщений: 516
Регистрация: 5.7.2004
Где: /

Репутация: нет
Всего: нет



Цитата(boostcoder @ 22.3.2012,  19:34)
Цитата(Alkash @  22.3.2012,  18:54 Найти цитируемый пост)
i386 architecture of input file `main.o' is incompatible with i386:x86-64 output

это сообщение говорит именно о том, что ты пытаешься линковать i386-объектники на x86_64 архитектуре. так кто кому лжет?

Добавлено @ 19:35
Цитата(Alkash @  22.3.2012,  19:31 Найти цитируемый пост)
g++ -c -I/usr/include/ -I/usr/include/c++/4.6 -m32


Цитата(Alkash @  22.3.2012,  19:31 Найти цитируемый пост)
g++ -m64 -Wl,-O1 -o CCafe main.o ccafewnd.o stations.o ccafe.o moc_ccafewnd.o

ну ты чо в самом деле?!
объектники ты собираешь для 32ух битной архитектуры, а линкуешь для 64ех битной!

Да не. Это просто выглядело как - открыл проект, снес объектники - и увидел то что выше-) Вот я и спрашивал как скормить линковщику в  qt creator ключь -m32. Вопрос не снимается кстати, хотя проблема решилась-)


--------------------
Подпись >> /dev/null
PM MAIL ICQ MSN   Вверх
boostcoder
Дата 22.3.2012, 19:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 4
Всего: 110



Цитата(Alkash @  22.3.2012,  19:36 Найти цитируемый пост)
Убираю ключ -m32

а нафиг ты его вообще туда вписывал? у тебя что, кросскомпилятор по умолчанию установлен?

PM WWW   Вверх
Alkash
Дата 22.3.2012, 19:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


коллекционер жизни
**


Профиль
Группа: Участник
Сообщений: 516
Регистрация: 5.7.2004
Где: /

Репутация: нет
Всего: нет



Цитата(boostcoder @ 22.3.2012,  19:38)
Цитата(Alkash @  22.3.2012,  19:36 Найти цитируемый пост)
Убираю ключ -m32

а нафиг ты его вообще туда вписывал? у тебя что, кросскомпилятор по умолчанию установлен?

Вписывал - ибо пригрезилось мне, раз проект в 32 битной системе начат и при попытке сборки таки глюки выписывает - дайка я ему скормлю ключик, чтоб и компилил и линковал, как на 32 битной системе.


--------------------
Подпись >> /dev/null
PM MAIL ICQ MSN   Вверх
boostcoder
Дата 22.3.2012, 19:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 4
Всего: 110



Цитата(Alkash @  22.3.2012,  19:38 Найти цитируемый пост)
Да не.

как это нет?!
повторяю: ты объектники собираешь в 32ух битном режиме а линкуешь в 64ех битном!

Добавлено через 42 секунды
тему закрой.
PM WWW   Вверх
Alkash
Дата 22.3.2012, 19:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


коллекционер жизни
**


Профиль
Группа: Участник
Сообщений: 516
Регистрация: 5.7.2004
Где: /

Репутация: нет
Всего: нет



Цитата(boostcoder @ 22.3.2012,  19:40)
Цитата(Alkash @  22.3.2012,  19:38 Найти цитируемый пост)
Да не.

как это нет?!
повторяю: ты объектники собираешь в 32ух битном режиме а линкуешь в 64ех битном!

Добавлено @ 19:41
тему закрой.

Да не - это в используемом контексте фигура речи, не являющаяся отрицанием в полной мере-)
И все же - если вдруг кто нибудь, прочитает когда нибудь эту тему до конца - и знает ответ, как же в qt creator кормить ключи линковщику - пусть не сочтет за труд и напишет мне сию тайну в ПМ. Спасибо.


--------------------
Подпись >> /dev/null
PM MAIL ICQ MSN   Вверх
boostcoder
Дата 22.3.2012, 19:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 4
Всего: 110



Цитата(Alkash @  22.3.2012,  19:44 Найти цитируемый пост)
как же в qt creator кормить ключи линковщику

QMAKE_LFLAGS

PM WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets"
JackYF
Любитель
  • В заголовке темы в квадратных скобках обозначьте используемую вами библиотеку, например: [QT],[GTK],[wx].
  • Если вопрос актуален только для некоторой версии библиотеки, либо, если вы пользуетесь не самой последней версией, укажите это. Например: [QT4], [GTK2].
  • Все начинающие изучать Qt - не забудьте зайти сюда.
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • В вопросе укажите полную версию версию библиотеки, а также все дополнительные используемые программные пакеты.
  • Не забывайте пользоваться кнопкой "Код".
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема »


 




[ Время генерации скрипта: 0.0505 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.