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

Войти
 
  Начало Форум WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  
  Просмотр сообщений
Страниц: 1 ... 310 311 [312] 313
4666  Qt / Общие вопросы / Re: Undefined symbols при компиляции : Апрель 17, 2011, 15:46
тогда уж лучше следовать стандарту Подмигивающий
4667  Qt / Общие вопросы / Re: Undefined symbols при компиляции : Апрель 17, 2011, 14:17
уже ж постил ссылку Улыбающийся
вот ссылка на исходники: http://www.mediafire.com/?dwhl2z58gp21syx
4668  Qt / Общие вопросы / Re: Undefined symbols при компиляции : Апрель 17, 2011, 13:35
вернул определение статических переменных в хедер и попробовал собрать через хкод. я и не удивился особо.
версия gcc 4.2.1 (i686-apple-darwin10-gcc-4.2.1).
Цитата: xcode
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 определить прямо в классе - вот там компилятор ругался, а инты я думал можно Улыбающийся большое спасибо, теперь буду знать!

а почему ж тогда на другие статические переменные не ругается, а только на эти?
4671  Qt / Общие вопросы / Re: Undefined symbols при компиляции : Апрель 16, 2011, 16:39
нет, у меня как раз интеловский мак, а собираю проект я для обоих архитектур (i386 и ppc). другой проект для обоих архитектур собирается спокойно как в debug, так и в release (а этот, напомню, успешно собирается только для release).

вот ссылка на исходники: http://www.mediafire.com/?dwhl2z58gp21syx
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
4673  Qt / Общие вопросы / Re: Undefined symbols при компиляции : Апрель 16, 2011, 15:31
все это пробовал, даже проект по-новой создавал - не помогает.

mingw на маке?.. у меня есть make, gcc и другие юниксовые утилиты Улыбающийся
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 файл, дописывать к переменным имя_класса:: - ничего не помогло.

Подскажите пожалуйста как это исправить.
4675  Qt / Пользовательский интерфейс (GUI) / Re: Авторесайз виджета в зависимости от размера лейбла : Апрель 10, 2011, 14:03
спасибо, но без использования координат левого элемента в QFormLayout всё равно не обошлось. я думал есть способ поэлегантнее Улыбающийся
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 &registryValue, 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 &registryValue, const QMap<QString, T> &map)
{
QMap<QString, QVariant> mapToSave;
foreach(QString key, map.keys())
mapToSave.insert(key, map.value(key));
QSettings().setValue(registryValue, mapToSave);
}
4679  Qt / Общие вопросы / Re: как узнать что приложение завершается ОС а не пользователем? : Июнь 06, 2010, 11:22
спасибо, буду смотреть
4680  Qt / Общие вопросы / [РЕШЕНО] как узнать что приложение завершается ОС а не пользователем? : Июнь 06, 2010, 01:50
Столкнулся с проблемой: программа работает, комп (в данном случае ОС - винда) перегружается или вырубается, closeEvent не приходит и настройки не сохраняются. Есть конечно вариант сохранять настройки сразу после изменения, но хотелось бы узнать как дать команду сохраниться при завершении программы ОС.
Страниц: 1 ... 310 311 [312] 313

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