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

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

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: Undefined symbols при компиляции  (Прочитано 14196 раз)
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #15 : Апрель 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
« Последнее редактирование: Апрель 17, 2011, 13:38 от 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
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #16 : Апрель 17, 2011, 14:02 »

Вот уж не знаю - мне завалить никак не удается  Улыбающийся
Если есть желание - выложите минимальный компилябельный проект
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #17 : Апрель 17, 2011, 14:17 »

уже ж постил ссылку Улыбающийся
вот ссылка на исходники: http://www.mediafire.com/?dwhl2z58gp21syx
Записан

Изучением 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


Просмотр профиля
« Ответ #18 : Апрель 17, 2011, 15:36 »

Да, с оригиналом у меня те же ошибки линковки.
Можно уговорить так
Код
C++ (Qt)
int nameOffset() const  { return isChecksumPresent() ? (int) newNameOffset : (int) oldNameOffset; }
 
Или так
Код
C++ (Qt)
int nameOffset() const
{
if (isChecksumPresent())
return newNameOffset;
else
return oldNameOffset;
}
 
Т.е. не нравится условный оператор. Почему - не знаю  Улыбающийся
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #19 : Апрель 17, 2011, 15:46 »

тогда уж лучше следовать стандарту Подмигивающий
Записан

Изучением 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 [2]   Вверх
  Печать  
 
Перейти в:  


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