Russian Qt Forum
Ноябрь 02, 2024, 07:26 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: GCC, C++11 и Qt  (Прочитано 8408 раз)
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4746



Просмотр профиля WWW
« : Ноябрь 21, 2011, 19:02 »

Здравствуйте. Решил начать пользоваться новым стандартом в проекте. Под виндой никаких проблем - поставил 2010-ю студию и вперед - позаменял наконец-то огромнейшие типы итераторов на auto Улыбающийся

Под мак ос (10.7) такое сразу не работает - с хкодом идет GCC 4.2.1, в котором отсутствует поддержка C++11, поэтому решил собрать свой (4.6.2). Воспользовался отличной статьей (правда пришлось выставить всем зависимостям ABI=64, а то не собиралось), простой тестовый пример (такой как в статье например) собирается. Раз все хорошо, то полез в настройки креатора, добавил новый toolchain, добавил новую цель для проекта с использованием нового компилятора, добавил в файл проекта QMAKE_CXXFLAGS += -std=c++0x. Нажимаю заветную кнопочку Build, и приехали:
Код:
g++ -c -pipe -std=c++0x -g -gdwarf-2 -arch x86_64 -Xarch_x86_64 -mmacosx-version-min=10.5 -Wall -W -DQT_GUI_LIB -DQT_CORE_LIB -I../../../QtSDK/Desktop/Qt/474/gcc/mkspecs/macx-g++ -I../MedianXLOfflineTools -I../../../QtSDK/Desktop/Qt/474/gcc/lib/QtCore.framework/Versions/4/Headers -I../../../QtSDK/Desktop/Qt/474/gcc/include/QtCore -I../../../QtSDK/Desktop/Qt/474/gcc/lib/QtGui.framework/Versions/4/Headers -I../../../QtSDK/Desktop/Qt/474/gcc/include/QtGui -I../../../QtSDK/Desktop/Qt/474/gcc/include -I. -I. -I../MedianXLOfflineTools -I. -F/Developer/QtSDK/Desktop/Qt/474/gcc/lib -o main.o ../MedianXLOfflineTools/main.cpp
g++: error: x86_64: No such file or directory
make: Leaving directory `/Developer/Projects/Qt/MedianXLOfflineTools-build-desktop-Qt_4_7_4_-_GCC_4_6_2_Debug'
g++: error: unrecognized option '-arch'
g++: error: unrecognized option '-Xarch_x86_64'
make: *** [main.o] Error 1
И теперь не знаю что делать Грустный Может надо какие-то дополнительные параметры подописывать при сборке GCC?

Вот мой:
Код:
kambala-macbook:4.7.4 kambala$ /Developer/Projects/C++/gcc-4.6.2/bin/gcc -v
Using built-in specs.
COLLECT_GCC=/Developer/Projects/C++/gcc-4.6.2/bin/gcc
COLLECT_LTO_WRAPPER=/Developer/Projects/C++/gcc-4.6.2/libexec/gcc/x86_64-apple-darwin11.2.0/4.6.2/lto-wrapper
Target: x86_64-apple-darwin11.2.0
Configured with: ../gcc-4.6.2/configure --prefix=/Developer/Projects/C++/gcc-4.6.2 --with-gmp=/Developer/Projects/C++/gcc-4.6.2 --with-mpfr=/Developer/Projects/C++/gcc-4.6.2 --with-mpc=/Developer/Projects/C++/gcc-4.6.2 --enable-checking=release --enable-languages=c,c++ --program-suffix=-4.6.2 --with-dwarf2 ABI=64
Thread model: posix
gcc version 4.6.2 (GCC)

Предустановленный же gcc не ругается на эти параметры, собран он так:
Код:
kambala-macbook:4.7.4 kambala$ gcc -v
Using built-in specs.
Target: i686-apple-darwin11
Configured with: /private/var/tmp/llvmgcc42/llvmgcc42-2336.1~22/src/configure --disable-checking --enable-werror --prefix=/Developer/usr/llvm-gcc-4.2 --mandir=/share/man --enable-languages=c,objc,c++,obj-c++ --program-prefix=llvm- --program-transform-name=/^[cg][^.-]*$/s/$/-4.2/ --with-slibdir=/usr/lib --build=i686-apple-darwin11 --enable-llvm=/private/var/tmp/llvmgcc42/llvmgcc42-2336.1~22/dst-llvmCore/Developer/usr/local --program-prefix=i686-apple-darwin11- --host=x86_64-apple-darwin11 --target=i686-apple-darwin11 --with-gxx-include-dir=/usr/include/c++/4.2.1
Thread model: posix
gcc version 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.1.00)

Использую Qt 4.7.4 из последнего QtSDK.

З.Ы. На всякий случай пытался скомпилировать Qt из исходников новым GCC, получил сразу же аналогичную ошибку:
Код:
Creating qmake. Please wait...
/Developer/Projects/C++/gcc-4.6.2/bin/g++ -c -o project.o -arch i386 -pipe -DQMAKE_OPENSOURCE_EDITION -g -fconstant-cfstrings -I. -Igenerators -Igenerators/unix -Igenerators/win32 -Igenerators/mac -Igenerators/symbian -I/Developer/QtSDK/QtSources/4.7.4/include -I/Developer/QtSDK/QtSources/4.7.4/include/QtCore -I/Developer/QtSDK/QtSources/4.7.4/src/corelib/global -I/Developer/QtSDK/QtSources/4.7.4/src/corelib/xml -I/Developer/QtSDK/QtSources/4.7.4/tools/shared -DQT_NO_PCRE -DQT_BUILD_QMAKE -DQT_BOOTSTRAPPED -DQLIBRARYINFO_EPOCROOT -DQT_NO_TEXTCODEC -DQT_NO_UNICODETABLES -DQT_NO_COMPONENT -DQT_NO_STL -DQT_NO_COMPRESS -I/Developer/QtSDK/QtSources/4.7.4/mkspecs/macx-g++ -DHAVE_QCONFIG_CPP -DQT_NO_THREAD -DQT_NO_QOBJECT -DQT_NO_GEOM_VARIANT  project.cpp
g++: error: i386: No such file or directory
g++: error: unrecognized option ‘-arch’
make: *** [project.o] Error 1
« Последнее редактирование: Ноябрь 21, 2011, 19:11 от kambala » Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #1 : Ноябрь 21, 2011, 19:55 »

у эпла патченый гцц. была такая шняга, кажется забил в итоге на самосборный гцц
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #2 : Ноябрь 21, 2011, 20:09 »

у эпла патченый гцц. была такая шняга, кажется забил в итоге на самосборный гцц
Аналогично. Времени эти эксперименты жрут безмерно, а эффект (даже в случае полного успеха) невелик. Для проектов где нужно выжать всю скорость использую ICC  (хорошо дружит с Xcode) для остальных - спокойно gcc 4.2. IMO не стоит слишком рваться вперед  Улыбающийся
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4746



Просмотр профиля WWW
« Ответ #3 : Ноябрь 21, 2011, 20:20 »

да, печально... будем надеяться, что в следующий релиз xcode с сопутствующими включат хотя бы GCC 4.5.
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #4 : Ноябрь 21, 2011, 20:31 »

да, печально... будем надеяться, что в следующий релиз xcode с сопутствующими включат хотя бы GCC 4.5.
Там своя песня. Я тоже в свое время порыпался (мол, ну хотя бы gcc 4.4) но потом дошло - если apple "не одобрят" - дело тухлое. В этом есть свои плюсы.
Записан
gogi
Гость
« Ответ #5 : Ноябрь 22, 2011, 07:32 »

да, печально... будем надеяться, что в следующий релиз xcode с сопутствующими включат хотя бы GCC 4.5.

Зачем им gcc? Они будут включать clang.
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #6 : Ноябрь 22, 2011, 07:39 »

Есть проверенное годами правило - хочешь кросс-платформенность - забудь про все новые фенечки)
Записан

Qt 5.11/4.8.7 (X11/Win)
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4746



Просмотр профиля WWW
« Ответ #7 : Ноябрь 22, 2011, 11:14 »

да, печально... будем надеяться, что в следующий релиз xcode с сопутствующими включат хотя бы GCC 4.5.

Зачем им gcc? Они будут включать clang.
он и сейчас есть, но довольно сырой. пробовал им собирать - не видит хедеров (разбираться было лень), хотя в тулчейне в креаторе прописан.
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #8 : Ноябрь 22, 2011, 11:18 »

Чтобы видел хидеры, нужно его пересобрать. В дженте для этого есть флаг system-cxx-headers.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4746



Просмотр профиля WWW
« Ответ #9 : Ноябрь 22, 2011, 11:30 »

спасибо, может как-то попробую...
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
gogi
Гость
« Ответ #10 : Ноябрь 23, 2011, 07:52 »

да, печально... будем надеяться, что в следующий релиз xcode с сопутствующими включат хотя бы GCC 4.5.

Зачем им gcc? Они будут включать clang.
он и сейчас есть, но довольно сырой. пробовал им собирать - не видит хедеров (разбираться было лень), хотя в тулчейне в креаторе прописан.
Я к тому, что ждать новый gcc на маках не нужно, его не будет. А clang рано или поздно допилят.
Qt+clang официально дружат только начиная с 4.8, а она ещё не вышла.
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4746



Просмотр профиля WWW
« Ответ #11 : Ноябрь 23, 2011, 08:44 »

Qt+clang официально дружат только начиная с 4.8, а она ещё не вышла.
а, ну вот и отлично, значит ждать осталось не так и долго - уже ж RC есть
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.141 секунд. Запросов: 23.