Просмотр сообщений
|
Страниц: 1 ... 310 311 [312] 313
|
4668
|
Qt / Общие вопросы / Re: Undefined symbols при компиляции
|
: Апрель 17, 2011, 13:35
|
вернул определение статических переменных в хедер и попробовал собрать через хкод. я и не удивился особо. версия gcc 4.2.1 (i686-apple-darwin10-gcc-4.2.1). Build QD2CharRenamer of project QD2CharRenamer with configuration Debug
Ld build/QD2CharRenamer.build/Debug/QD2CharRenamer.build/Objects-normal/i386/QD2CharRenamer normal i386 cd /Developer/Projects/Qt/QD2CharRenamer setenv MACOSX_DEPLOYMENT_TARGET 10.4 /Developer/usr/bin/g++-4.2 -arch i386 -isysroot /Developer/SDKs/MacOSX10.5.sdk -L/Developer/Projects/Qt/QD2CharRenamer/build/Debug -L/Developer/Qt-4.7.2/lib -L/Developer/Qt-4.7.2/lib -F/Developer/Projects/Qt/QD2CharRenamer/build/Debug -filelist /Developer/Projects/Qt/QD2CharRenamer/build/QD2CharRenamer.build/Debug/QD2CharRenamer.build/Objects-normal/i386/QD2CharRenamer.LinkFileList -mmacosx-version-min=10.4 -headerpad_max_install_names -L/Developer/Qt-4.7.2/lib -F/Developer/Qt-4.7.2/lib -L/Developer/Qt-4.7.2/lib -F/Developer/Qt-4.7.2/lib -framework QtGui -framework QtCore -o /Developer/Projects/Qt/QD2CharRenamer/build/QD2CharRenamer.build/Debug/QD2CharRenamer.build/Objects-normal/i386/QD2CharRenamer
Undefined symbols: "QD2CharRenamer::newNameOffset", referenced from: __ZN14QD2CharRenamer13newNameOffsetE$non_lazy_ptr in qd2charrenamer.o (maybe you meant: __ZN14QD2CharRenamer13newNameOffsetE$non_lazy_ptr) "QD2CharRenamer::oldNameOffset", referenced from: __ZN14QD2CharRenamer13oldNameOffsetE$non_lazy_ptr in qd2charrenamer.o (maybe you meant: __ZN14QD2CharRenamer13oldNameOffsetE$non_lazy_ptr) ld: symbol(s) not found collect2: ld returned 1 exit status
Ld build/QD2CharRenamer.build/Debug/QD2CharRenamer.build/Objects-normal/ppc/QD2CharRenamer normal ppc cd /Developer/Projects/Qt/QD2CharRenamer setenv MACOSX_DEPLOYMENT_TARGET 10.4 /Developer/usr/bin/g++-4.2 -arch ppc -isysroot /Developer/SDKs/MacOSX10.5.sdk -L/Developer/Projects/Qt/QD2CharRenamer/build/Debug -L/Developer/Qt-4.7.2/lib -L/Developer/Qt-4.7.2/lib -F/Developer/Projects/Qt/QD2CharRenamer/build/Debug -filelist /Developer/Projects/Qt/QD2CharRenamer/build/QD2CharRenamer.build/Debug/QD2CharRenamer.build/Objects-normal/ppc/QD2CharRenamer.LinkFileList -mmacosx-version-min=10.4 -headerpad_max_install_names -L/Developer/Qt-4.7.2/lib -F/Developer/Qt-4.7.2/lib -L/Developer/Qt-4.7.2/lib -F/Developer/Qt-4.7.2/lib -framework QtGui -framework QtCore -o /Developer/Projects/Qt/QD2CharRenamer/build/QD2CharRenamer.build/Debug/QD2CharRenamer.build/Objects-normal/ppc/QD2CharRenamer
Undefined symbols: "QD2CharRenamer::newNameOffset", referenced from: __ZN14QD2CharRenamer13newNameOffsetE$non_lazy_ptr in qd2charrenamer.o (maybe you meant: __ZN14QD2CharRenamer13newNameOffsetE$non_lazy_ptr) "QD2CharRenamer::oldNameOffset", referenced from: __ZN14QD2CharRenamer13oldNameOffsetE$non_lazy_ptr in qd2charrenamer.o (maybe you meant: __ZN14QD2CharRenamer13oldNameOffsetE$non_lazy_ptr) ld: symbol(s) not found collect2: ld returned 1 exit status
|
|
|
4669
|
Qt / Общие вопросы / Re: Undefined symbols при компиляции
|
: Апрель 17, 2011, 11:29
|
У меня компилится нормально под любую архитектуру (Mac, компилятор Xcode)
у хкода есть свой компилятор?.. у меня gcc 4.2, 64-битная ОС (если это имеет значение). а ты чем компилировал?
|
|
|
4670
|
Qt / Общие вопросы / Re: Undefined symbols при компиляции
|
: Апрель 16, 2011, 17:12
|
я как-то пытался статическую переменную типа QString определить прямо в классе - вот там компилятор ругался, а инты я думал можно большое спасибо, теперь буду знать! а почему ж тогда на другие статические переменные не ругается, а только на эти?
|
|
|
4672
|
Qt / Общие вопросы / Re: Undefined symbols при компиляции
|
: Апрель 16, 2011, 16:26
|
та вроде как все нормально там. специально еще раз пересоздал проект - все то же. вот что пишет терминал если пользоваться им для сборки: Bash kambala-macbook:QD2CharRenamer kambala$ env TERM_PROGRAM=Apple_Terminal TERM=xterm-color SHELL=/bin/bash TMPDIR=/var/folders/Y-/Y-+o-8ZUEUy-H0o+5VzAqU+++TI/-Tmp-/ Apple_PubSub_Socket_Render=/tmp/launch-EJL2Fz/Render TERM_PROGRAM_VERSION=273.1 OLDPWD=/Users/kambala USER=kambala COMMAND_MODE=unix2003 SSH_AUTH_SOCK=/tmp/launch-eXRCH4/Listeners __CF_USER_TEXT_ENCODING=0x1F5:7:49 PATH=/Developer/Qt/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/git/bin:/usr/X11/bin PWD=/Developer/Projects/Qt/QD2CharRenamer SHLVL=1 HOME=/Users/kambala LOGNAME=kambala LC_CTYPE=UTF-8 DISPLAY=/tmp/launch-TaNfCL/org.x:0 SECURITYSESSIONID=6006b6 _=/usr/bin/env kambala-macbook:QD2CharRenamer kambala$ qmake kambala-macbook:QD2CharRenamer kambala$ make /Developer/Qt/bin/uic qd2charrenamer.ui -o ui_qd2charrenamer.h g++ -c -pipe -g -gdwarf-2 -arch i386 -arch ppc -Wall -W -isysroot /Developer/SDKs/MacOSX10.5.sdk -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I../../../Qt/mkspecs/macx-g++ -I. -I../../../Qt/lib/QtCore.framework/Versions/4/Headers -I../../../Qt/include/QtCore -I../../../Qt/lib/QtGui.framework/Versions/4/Headers -I../../../Qt/include/QtGui -I../../../Qt/include -I. -I. -F/Developer/Qt/lib -o main.o main.cpp g++ -c -pipe -g -gdwarf-2 -arch i386 -arch ppc -Wall -W -isysroot /Developer/SDKs/MacOSX10.5.sdk -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I../../../Qt/mkspecs/macx-g++ -I. -I../../../Qt/lib/QtCore.framework/Versions/4/Headers -I../../../Qt/include/QtCore -I../../../Qt/lib/QtGui.framework/Versions/4/Headers -I../../../Qt/include/QtGui -I../../../Qt/include -I. -I. -F/Developer/Qt/lib -o qd2charrenamer.o qd2charrenamer.cpp /Developer/Qt/bin/moc -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I../../../Qt/mkspecs/macx-g++ -I. -I../../../Qt/lib/QtCore.framework/Versions/4/Headers -I../../../Qt/include/QtCore -I../../../Qt/lib/QtGui.framework/Versions/4/Headers -I../../../Qt/include/QtGui -I../../../Qt/include -I. -I. -F/Developer/Qt/lib -D__APPLE__ -D__GNUC__ qd2charrenamer.h -o moc_qd2charrenamer.cpp g++ -c -pipe -g -gdwarf-2 -arch i386 -arch ppc -Wall -W -isysroot /Developer/SDKs/MacOSX10.5.sdk -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I../../../Qt/mkspecs/macx-g++ -I. -I../../../Qt/lib/QtCore.framework/Versions/4/Headers -I../../../Qt/include/QtCore -I../../../Qt/lib/QtGui.framework/Versions/4/Headers -I../../../Qt/include/QtGui -I../../../Qt/include -I. -I. -F/Developer/Qt/lib -o moc_qd2charrenamer.o moc_qd2charrenamer.cpp /Developer/Qt/bin/rcc -name qd2charrenamer qd2charrenamer.qrc -o qrc_qd2charrenamer.cpp g++ -c -pipe -g -gdwarf-2 -arch i386 -arch ppc -Wall -W -isysroot /Developer/SDKs/MacOSX10.5.sdk -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I../../../Qt/mkspecs/macx-g++ -I. -I../../../Qt/lib/QtCore.framework/Versions/4/Headers -I../../../Qt/include/QtCore -I../../../Qt/lib/QtGui.framework/Versions/4/Headers -I../../../Qt/include/QtGui -I../../../Qt/include -I. -I. -F/Developer/Qt/lib -o qrc_qd2charrenamer.o qrc_qd2charrenamer.cpp g++ -headerpad_max_install_names -arch i386 -arch ppc -Wl,-syslibroot,/Developer/SDKs/MacOSX10.5.sdk -o QD2CharRenamer.app/Contents/MacOS/QD2CharRenamer main.o qd2charrenamer.o moc_qd2charrenamer.o qrc_qd2charrenamer.o -F/Developer/Qt/lib -L/Developer/Qt/lib -framework QtGui -L/Developer/Qt/lib -F/Developer/Qt/lib -framework QtCore Undefined symbols for architecture i386: "QD2CharRenamer::newNameOffset", referenced from: __ZN14QD2CharRenamer13newNameOffsetE$non_lazy_ptr in qd2charrenamer.o (maybe you meant: __ZN14QD2CharRenamer13newNameOffsetE$non_lazy_ptr) "QD2CharRenamer::oldNameOffset", referenced from: __ZN14QD2CharRenamer13oldNameOffsetE$non_lazy_ptr in qd2charrenamer.o (maybe you meant: __ZN14QD2CharRenamer13oldNameOffsetE$non_lazy_ptr) ld: symbol(s) not found for architecture i386 collect2: ld returned 1 exit status Undefined symbols for architecture ppc: "QD2CharRenamer::newNameOffset", referenced from: __ZN14QD2CharRenamer13newNameOffsetE$non_lazy_ptr in qd2charrenamer.o (maybe you meant: __ZN14QD2CharRenamer13newNameOffsetE$non_lazy_ptr) "QD2CharRenamer::oldNameOffset", referenced from: __ZN14QD2CharRenamer13oldNameOffsetE$non_lazy_ptr in qd2charrenamer.o (maybe you meant: __ZN14QD2CharRenamer13oldNameOffsetE$non_lazy_ptr) ld: symbol(s) not found for architecture ppc collect2: ld returned 1 exit status lipo: can't open input file: /var/folders/Y-/Y-+o-8ZUEUy-H0o+5VzAqU+++TI/-Tmp-//ccvDyjHA.out (No such file or directory) make: *** [QD2CharRenamer.app/Contents/MacOS/QD2CharRenamer] Error 1
|
|
|
4674
|
Qt / Общие вопросы / Undefined symbols при компиляции
|
: Апрель 16, 2011, 12:54
|
Здравствуйте. Столкнулся с проблемой - код под Mac OS X отказывается компилироваться в режиме debug (но режим release, а также под виндой, компилируется успешно). Выводится такая ошибка: Undefined symbols for architecture i386: "QD2CharRenamer::newNameOffset", referenced from: __ZN14QD2CharRenamer13newNameOffsetE$non_lazy_ptr in qd2charrenamer.o (maybe you meant: __ZN14QD2CharRenamer13newNameOffsetE$non_lazy_ptr) "QD2CharRenamer::oldNameOffset", referenced from: __ZN14QD2CharRenamer13oldNameOffsetE$non_lazy_ptr in qd2charrenamer.o (maybe you meant: __ZN14QD2CharRenamer13oldNameOffsetE$non_lazy_ptr) ld: symbol(s) not found for architecture i386 collect2: ld returned 1 exit status Undefined symbols for architecture ppc: "QD2CharRenamer::newNameOffset", referenced from: __ZN14QD2CharRenamer13newNameOffsetE$non_lazy_ptr in qd2charrenamer.o (maybe you meant: __ZN14QD2CharRenamer13newNameOffsetE$non_lazy_ptr) "QD2CharRenamer::oldNameOffset", referenced from: __ZN14QD2CharRenamer13oldNameOffsetE$non_lazy_ptr in qd2charrenamer.o (maybe you meant: __ZN14QD2CharRenamer13oldNameOffsetE$non_lazy_ptr) ld: symbol(s) not found for architecture ppc collect2: ld returned 1 exit status lipo: can't open input file: /var/folders/Y-/Y-+o-8ZUEUy-H0o+5VzAqU+++TI/-Tmp-//cc4A23Ll.out (No such file or directory) make: *** [QD2CharRenamer.app/Contents/MacOS/QD2CharRenamer] Error 1 make: Leaving directory `/Developer/Projects/Qt/QD2CharRenamer-build-desktop' Процесс "/usr/bin/make" завершился с кодом 2. Возникла ошибка при сборке проекта QD2CharRenamer (цель: Настольный компьютер) Во время выполнения сборки на этапе "Сборка" Пробовал на 4.6.3 и 4.7.2, обе собраны в режиме -debug-and-release. Другие проекты (как universal, так и нет) собираются и запускаются в режиме debug нормально. Две переменные, которые указаны в ошибке, объявлены так: C++ (Qt) public: static const int checksumOffset = 12, newNameOffset = 20, maxNameLength = 15, versionOffset = 4, oldNameOffset = 8;
а используются newNameOffset и oldNameOffset лишь в одном месте в коде: C++ (Qt) private: int nameOffset() const { return isChecksumPresent() ? newNameOffset : oldNameOffset; }
Пробовал убирать const у этого метода, перемещать реализацию в cpp файл, дописывать к переменным имя_класса:: - ничего не помогло. Подскажите пожалуйста как это исправить.
|
|
|
4676
|
Qt / Пользовательский интерфейс (GUI) / Авторесайз виджета в зависимости от размера лейбла
|
: Апрель 10, 2011, 13:37
|
Здравствуйте. Есть виджет, в котором есть QFormLayout, внутри которого несколько элементов, в т.ч. и QLabel справа. Надо сделать так, чтоб виджет автоматически подгонял свой размер под длину этого QLabel'a.
Пробовал вызывать resize(sizeHint()) виджета сразу после присваивания текста лейблу - не помогает.
Для лейбла установлена политика Expanding, для QFormLayout - ExpandingFieldsGrow. Виджету ставил Expanding, Preferred и Maximum - не помогло.
Вообще, честно говоря, я с этими политиками до сих пор полностью и не разобрался, хотя уже сколько раз про них читал и в ассистенте и в книжках. Может у кого есть толковая статья по ним? Буду премного благодарен.
|
|
|
4677
|
Qt / Печать / печать в файл в Mac OS X
|
: Октябрь 07, 2010, 22:03
|
пытаюсь что-либо напечатать в файл pdf или ps на Mac OS X (родные функции) - ни в какую не хочет, всегда выдает в консоль QPainter::begin(): Returned false для изображений, а для текстовых документов вообще ничего не говорит - просто не печатает. пробовал как в своем коде, так и в примерах. в винде и линуксе все прекрасно работает. может кто знает как это заставить работать? на всякий случай код: C++ (Qt) QGraphicsScene *paintScene; ... QPrinter printer(QPrinter::HighResolution); if (QPrintDialog(&printer, this).exec() == QDialog::Accepted) { QPainter painter(&printer); if (painter.isActive()) { painter.setRenderHint(QPainter::Antialiasing); paintScene->render(&painter); } else QMessageBox::critical(this, appName, tr("Unable to print image")); }
|
|
|
4678
|
Qt / Общие вопросы / считывание из реестра QMap<QString, T>
|
: Июнь 11, 2010, 19:17
|
Здравствуйте. Я хочу считывать из реестра QMap произвольных (в частности QString и QStringList) типов, только что-то не могу сообразить как это правильно записать. Хотел сделать так, чтоб тип в шаблон подставлялся динамически. Смотрел на QVariant, QMetaType - не понял как их применить. Вот так как-то неправильно выглядит: C++ (Qt) template<typename T> QMap<QString, T> loadMap(const QString ®istryValue, T mapValueType) { QMap<QString, QVariant> loadedMap = QSettings().value(registryValue).toMap(); QMap<QString, T> map; foreach(QString key, loadedMap.keys()) map.insert(key, loadedMap.value(key).toString()); // тут ещё и написал неправильно return map; }
Сохранение в реестр пишется легко: C++ (Qt) template<typename T> void saveMap(const QString ®istryValue, const QMap<QString, T> &map) { QMap<QString, QVariant> mapToSave; foreach(QString key, map.keys()) mapToSave.insert(key, map.value(key)); QSettings().setValue(registryValue, mapToSave); }
|
|
|
4680
|
Qt / Общие вопросы / [РЕШЕНО] как узнать что приложение завершается ОС а не пользователем?
|
: Июнь 06, 2010, 01:50
|
Столкнулся с проблемой: программа работает, комп (в данном случае ОС - винда) перегружается или вырубается, closeEvent не приходит и настройки не сохраняются. Есть конечно вариант сохранять настройки сразу после изменения, но хотелось бы узнать как дать команду сохраниться при завершении программы ОС.
|
|
|
|
|