Ошибка *.o файлов Topic is solved

Это русская секция форума wxWidjets. В этой секции вы можете обсуждать любые вопросы, связанные с wxWidgets на вашем родном языке.
Post Reply
SmileGobo
Earned some good credits
Earned some good credits
Posts: 111
Joined: Wed Jul 30, 2008 8:01 am
Location: Russia/MO
Contact:

Ошибка *.o файлов

Post by SmileGobo » Thu Dec 11, 2008 10:08 am

Все прекрасно компилируется и линкуется, но, видимо, загрузчик выдет следующую ошибку:
obj\Release\myclass.o:myclass.cpp:(.text+0x3a00)||undefined reference to `_wxGridNameStr'|
obj\Release\myclass.o:myclass.cpp:(.text+0x3a8b)||undefined reference to `wxGrid::wxGrid(wxWindow*, int, wxPoint const&, wxSize const&, long, wxString const&)'|
const&)'|
...
||=== Build finished: 50 errors, 0 warnings ===|
код классов генерируется с помощью wxFormBuilder собстве6нно именно после вставки этого кода в проект(СodeBlokcks использую) и начинается такая чехарда.
зы если это имеет значение, то библиотека собрана без UNICODE
Attachments
ph.zip
(1.96 KiB) Downloaded 94 times
win xp sp2; CodeBlocks/mingw/wxWidgets 2.8.9/wxFormBuilder
web-программирование:PHP,js/Ajax

syber
Experienced Solver
Experienced Solver
Posts: 53
Joined: Thu Apr 27, 2006 1:34 pm

Post by syber » Thu Dec 11, 2008 10:46 am

1) Видимо не все библиотеки подключены, попробуй добавь wxmsw28_dbgrid.
2) На всякий случай проверь Runtime Library библиотек и проекта.
3) Вполне может быть: один из твоих файлов\классов заинклуден но в проект не добавлен

Больше в голову ничего не пришло! :)

SmileGobo
Earned some good credits
Earned some good credits
Posts: 111
Joined: Wed Jul 30, 2008 8:01 am
Location: Russia/MO
Contact:

Post by SmileGobo » Thu Dec 11, 2008 12:12 pm

1)2)Если б библиотеки были то наверное линковщик бы ругался
3)Файлы все закинклудены, иначе бы все на стадии компиляции были бы ошибки
win xp sp2; CodeBlocks/mingw/wxWidgets 2.8.9/wxFormBuilder
web-программирование:PHP,js/Ajax

tan
Moderator
Moderator
Posts: 1471
Joined: Tue Nov 14, 2006 7:58 am
Location: Saint-Petersburg, Russia

Post by tan » Thu Dec 11, 2008 12:27 pm

SmileGobo wrote:1)2)Если б библиотеки были то наверное линковщик бы ругался
Интересно, кто кроме линкера может ругаться на неопределенные ссылки?
SmileGobo wrote: 3)Файлы все закинклудены, иначе бы все на стадии компиляции были бы ошибки
Покажи-ка лучше полный вывод линкера (можно и компилера тоже).
OS: Windows XP Pro
Compiler: MSVC++ 7.1
wxWidgets: 2.8.10

SmileGobo
Earned some good credits
Earned some good credits
Posts: 111
Joined: Wed Jul 30, 2008 8:01 am
Location: Russia/MO
Contact:

Post by SmileGobo » Thu Dec 11, 2008 1:01 pm

-------------- Build: Release in phbook1 ---------------

Linking executable: bin\Release\phbook1.exe
obj\Release\myclass.o:myclass.cpp:(.text+0x3a00): undefined reference to `_wxGridNameStr'
obj\Release\myclass.o:myclass.cpp:(.text+0x3a8b): undefined reference to `wxGrid::wxGrid(wxWindow*, int, wxPoint const&, wxSize const&, long, wxString const&)'
obj\Release\myclass.o:myclass.cpp:(.text+0x3af2): undefined reference to `wxGrid::CreateGrid(int, int, wxGrid::wxGridSelectionModes)'
obj\Release\myclass.o:myclass.cpp:(.text+0x3b0f): undefined reference to `wxGrid::EnableEditing(bool)'
obj\Release\myclass.o:myclass.cpp:(.text+0x3b2c): undefined reference to `wxGrid::EnableGridLines(bool)'
obj\Release\myclass.o:myclass.cpp:(.text+0x3b69): undefined reference to `wxGrid::SetGridLineColour(wxColour const&)'
obj\Release\myclass.o:myclass.cpp:(.text+0x3b99): undefined reference to `wxGrid::EnableDragGridSize(bool)'
obj\Release\myclass.o:myclass.cpp:(.text+0x3bbd): undefined reference to `wxGrid::CalcDimensions()'
obj\Release\myclass.o:myclass.cpp:(.text+0x3be0): undefined reference to `wxGrid::SetColSize(int, int)'
obj\Release\myclass.o:myclass.cpp:(.text+0x3c06): undefined reference to `wxGrid::SetColSize(int, int)'
obj\Release\myclass.o:myclass.cpp:(.text+0x3c2c): undefined reference to `wxGrid::SetColSize(int, int)'
obj\Release\myclass.o:myclass.cpp:(.text+0x3c52): undefined reference to `wxGrid::SetColSize(int, int)'
obj\Release\myclass.o:myclass.cpp:(.text+0x3c78): undefined reference to `wxGrid::SetColSize(int, int)'
obj\Release\myclass.o:myclass.cpp:(.text+0x3c9e): more undefined references to `wxGrid::SetColSize(int, int)' follow
obj\Release\myclass.o:myclass.cpp:(.text+0x3cb8): undefined reference to `wxGrid::EnableDragColMove(bool)'
obj\Release\myclass.o:myclass.cpp:(.text+0x3cd2): undefined reference to `wxGrid::EnableDragColSize(bool)'
obj\Release\myclass.o:myclass.cpp:(.text+0x3cef): undefined reference to `wxGrid::SetColLabelSize(int)'
obj\Release\myclass.o:myclass.cpp:(.text+0x3d49): undefined reference to `wxGrid::SetColLabelValue(int, wxString const&)'
obj\Release\myclass.o:myclass.cpp:(.text+0x3dc4): undefined reference to `wxGrid::SetColLabelValue(int, wxString const&)'
obj\Release\myclass.o:myclass.cpp:(.text+0x3e3f): undefined reference to `wxGrid::SetColLabelValue(int, wxString const&)'
obj\Release\myclass.o:myclass.cpp:(.text+0x3eba): undefined reference to `wxGrid::SetColLabelValue(int, wxString const&)'
obj\Release\myclass.o:myclass.cpp:(.text+0x3f35): undefined reference to `wxGrid::SetColLabelValue(int, wxString const&)'
obj\Release\myclass.o:myclass.cpp:(.text+0x3fb0): more undefined references to `wxGrid::SetColLabelValue(int, wxString const&)' follow
obj\Release\myclass.o:myclass.cpp:(.text+0x3fff): undefined reference to `wxGrid::SetColLabelAlignment(int, int)'
obj\Release\myclass.o:myclass.cpp:(.text+0x4022): undefined reference to `wxGrid::SetOrCalcRowSizes(bool, bool)'
obj\Release\myclass.o:myclass.cpp:(.text+0x403f): undefined reference to `wxGrid::EnableDragRowSize(bool)'
obj\Release\myclass.o:myclass.cpp:(.text+0x4059): undefined reference to `wxGrid::SetRowLabelSize(int)'
obj\Release\myclass.o:myclass.cpp:(.text+0x407c): undefined reference to `wxGrid::SetRowLabelAlignment(int, int)'
obj\Release\myclass.o:myclass.cpp:(.text+0x4147): undefined reference to `wxGrid::SetLabelFont(wxFont const&)'
obj\Release\myclass.o:myclass.cpp:(.text+0x4243): undefined reference to `wxGrid::SetDefaultCellFont(wxFont const&)'
obj\Release\myclass.o:myclass.cpp:(.text+0x42a8): undefined reference to `wxGrid::SetDefaultCellAlignment(int, int)'
obj\Release\myclass.o:myclass.cpp:(.text+0x4fd0): undefined reference to `_wxGridNameStr'
obj\Release\myclass.o:myclass.cpp:(.text+0x505b): undefined reference to `wxGrid::wxGrid(wxWindow*, int, wxPoint const&, wxSize const&, long, wxString const&)'
obj\Release\myclass.o:myclass.cpp:(.text+0x50c2): undefined reference to `wxGrid::CreateGrid(int, int, wxGrid::wxGridSelectionModes)'
obj\Release\myclass.o:myclass.cpp:(.text+0x50df): undefined reference to `wxGrid::EnableEditing(bool)'
obj\Release\myclass.o:myclass.cpp:(.text+0x50fc): undefined reference to `wxGrid::EnableGridLines(bool)'
obj\Release\myclass.o:myclass.cpp:(.text+0x5139): undefined reference to `wxGrid::SetGridLineColour(wxColour const&)'
obj\Release\myclass.o:myclass.cpp:(.text+0x5169): undefined reference to `wxGrid::EnableDragGridSize(bool)'
obj\Release\myclass.o:myclass.cpp:(.text+0x518d): undefined reference to `wxGrid::CalcDimensions()'
obj\Release\myclass.o:myclass.cpp:(.text+0x51b0): undefined reference to `wxGrid::SetColSize(int, int)'
obj\Release\myclass.o:myclass.cpp:(.text+0x51d6): undefined reference to `wxGrid::SetColSize(int, int)'
obj\Release\myclass.o:myclass.cpp:(.text+0x51fc): undefined reference to `wxGrid::SetColSize(int, int)'
obj\Release\myclass.o:myclass.cpp:(.text+0x5222): undefined reference to `wxGrid::SetColSize(int, int)'
obj\Release\myclass.o:myclass.cpp:(.text+0x5248): undefined reference to `wxGrid::SetColSize(int, int)'
obj\Release\myclass.o:myclass.cpp:(.text+0x526e): more undefined references to `wxGrid::SetColSize(int, int)' follow
obj\Release\myclass.o:myclass.cpp:(.text+0x5288): undefined reference to `wxGrid::EnableDragColMove(bool)'
obj\Release\myclass.o:myclass.cpp:(.text+0x52a2): undefined reference to `wxGrid::EnableDragColSize(bool)'
obj\Release\myclass.o:myclass.cpp:(.text+0x52bf): undefined reference to `wxGrid::SetColLabelSize(int)'
obj\Release\myclass.o:myclass.cpp:(.text+0x5319): undefined reference to `wxGrid::SetColLabelValue(int, wxString const&)'
obj\Release\myclass.o:myclass.cpp:(.text+0x5394): undefined reference to `wxGrid::SetColLabelValue(int, wxString const&)'
obj\Release\myclass.o:myclass.cpp:(.text+0x540f): undefined reference to `wxGrid::SetColLabelValue(int, wxString const&)'
obj\Release\myclass.o:myclass.cpp:(.text+0x548a): undefined reference to `wxGrid::SetColLabelValue(int, wxString const&)'
obj\Release\myclass.o:myclass.cpp:(.text+0x5505): undefined reference to `wxGrid::SetColLabelValue(int, wxString const&)'
Process terminated with status 1 (0 minutes, 3 seconds)
50 errors, 0 warnings
win xp sp2; CodeBlocks/mingw/wxWidgets 2.8.9/wxFormBuilder
web-программирование:PHP,js/Ajax

tan
Moderator
Moderator
Posts: 1471
Joined: Tue Nov 14, 2006 7:58 am
Location: Saint-Petersburg, Russia

Post by tan » Thu Dec 11, 2008 1:59 pm

Ну я вообще-то имел в виду полный вывод, в первую очередь командную строку (с ошибками более-менее ясно), какие библиотеки подключены и т.п.
На глаз могу сказать, что не хватает wxmsw28_adv.
OS: Windows XP Pro
Compiler: MSVC++ 7.1
wxWidgets: 2.8.10

SmileGobo
Earned some good credits
Earned some good credits
Posts: 111
Joined: Wed Jul 30, 2008 8:01 am
Location: Russia/MO
Contact:

Post by SmileGobo » Thu Dec 11, 2008 2:28 pm

Большое спасибо завелось. :D
На будущие если не затруднит немогли бы вы ответить на мои вопрсы:
Что это за библиотека? как вы определили что ее не хватает? на что вообще обращать внимание чтоб отслеживать такие ошибки?
win xp sp2; CodeBlocks/mingw/wxWidgets 2.8.9/wxFormBuilder
web-программирование:PHP,js/Ajax

User avatar
T-Rex
Moderator
Moderator
Posts: 1188
Joined: Sat Oct 23, 2004 9:58 am
Location: Zaporizhzhya, Ukraine
Contact:

Post by T-Rex » Thu Dec 11, 2008 2:41 pm

Code: Select all

на что вообще обращать внимание чтоб отслеживать такие ошибки?
На последовательность, в которой указываются библиотеки в настройках линкера. Сначала идут библиотеки, которые зависят ОТ чего-то, потом идут те, ОТ КОТОРЫХ зависят предыдущие.

OFFTOP: Хы, когда по билд-логу можешь определить какой библиотеки нехватает в списке, значит уже перешел на качественно новый уровень понимания самой wxWidgets. :)
На самом деле можно открыть solution и посмотреть, в каком проекте находится декларация класса, так будешь знать какой библиотеки нехватает, хотя да, это только для Windows. Но с другой стороны есть makefile'ы и можно в них посмотреть.

tan
Moderator
Moderator
Posts: 1471
Joined: Tue Nov 14, 2006 7:58 am
Location: Saint-Petersburg, Russia

Post by tan » Thu Dec 11, 2008 2:42 pm

SmileGobo wrote:Большое спасибо завелось. :D
That's fine :)
SmileGobo wrote: На будущие если не затруднит немогли бы вы ответить на мои вопрсы:
Что это за библиотека? как вы определили что ее не хватает? на что вообще обращать внимание чтоб отслеживать такие ошибки?
Конкретно эта библиотека содержит некоторые не очень часто используемые и "жирные" виджеты (типа Grid, Wizard, DataView, всех не помню :)). Понятно, для того, что бы не утяжелять простые программы, где они не используются. А определить не сложно, если примерно знаешь какие компоненты в каких либах находятся. Полезно посмотреть диаграмму зависимостей (она есть в доке):
http://docs.wxwidgets.org/stable/wx_lib ... rarieslist
OS: Windows XP Pro
Compiler: MSVC++ 7.1
wxWidgets: 2.8.10

Post Reply