| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > CodeBlocks (C::B) игнорирует написанный код |
| Автор: ivanstanislavovich 11.8.2011, 20:10 | ||
| Используется: Ubuntu 11, CodeBlocks 10.05, wxWidgeth, SQLite. CodeBlocks игнорирует часть написанного кода даже при отладке шагами:
(Веду тсчетные попытки завести SQLite под C++ с IDE C::B) Т.е. с шага 1 переходи на второй, пропуская все, что между ними. Есть какие-то идеи, комментарии по этому поводу? |
| Автор: bsa 11.8.2011, 22:04 |
| отключи оптимизацию (в настройках компилятора должен быть ключ -O0, а -O1, -O2... - это оптимизация, из-за нее возникают такие проблемы при отладке)!!! |
| Автор: ivanstanislavovich 11.8.2011, 22:29 | ||
Нашел настройки такие (Settings->Compile and debuging), но там не включена ни одна оптимизация, даже -O, -O1. Project build options задан только "Produce debugging symbols [-g]". |
| Автор: afiskon 12.8.2011, 07:53 |
| Может, отладчику взрывает мозг callback? Попробуйте вставить между sqlite3_ вывод чего-нибудь. И вообще не помешало бы для очистки совести этот lllDialog::OnAbout через IDA Pro прогнать. Кстати, мне где-то попадались ОО-оболочки вокруг SQLite, даже вроде видел класс wxSQLite. Это не конкретно к вашему вопросу - просто использовать Си-функции в C++ коде - не комильфо. |
| Автор: ivanstanislavovich 12.8.2011, 08:37 | ||||||||||||||
afiskon, спасибо за ответ.
Все с комментарием "NO STEP IN" не выполняется.
К сожалению, я не достаточно развит для разбора дизассемблированного кода, по этому лишь положу такой во вложении.
Я такую тоже видел, даже пробовал установить/скомпилировать. Но мои потуги увенчались провалом.
Простите за не грамотность, но о каких функциях вы говорите ? "wxSqlite3_Open" ? А как вы ее насквозь видите ? Может поможе в разрешение проблемы:
объявлено в CPP файле. Без них выводил сообщение об ошибке, на функциях sqlite3:
с включенной "include <sqlite3ext.h>", в дополнение к "include <sqliter3.h>"
|
| Автор: ivanstanislavovich 12.8.2011, 09:08 | ||||
Есть исходники sqlite, могу выложить. Не знаю таких библиотек, по примерам делал - не подходили или не существовали. Ох, как я намучался за эту неделю с этим wxsqlite. Не в жалобу, а к тому, что брал явный код примера - и он не работал. При том что версии и прочее было такое же. В итоге шнырял по Интернету, дабы найти хоть какое-то решение.
это значит, что часть кода просто игнорируется, или что я не верно что-то сделал? |
| Автор: asmdzen 12.8.2011, 09:17 |
| ivanstanislavovich, можете выложить хидер и cpp где описан этот OnAbout(т.е. класс lllDialog)? можете оставить только то что связанно именно с sql. |
| Автор: ivanstanislavovich 12.8.2011, 09:27 |
| asmdzen, я благодарен Вам за оказание помощи. Во вложении запрашиваемое. Исходный код приложения - чистый проект с одной формой, генерируемый автоматически при создании проекта wxWidgeth. Я лишь изменил код на кнопке About и расширил шапку в CPP файле. |
| Автор: ivanstanislavovich 12.8.2011, 10:37 |
| а в настройках компилятора можно задать, что-то вроде "пропускать код С" ? |
| Автор: asmdzen 12.8.2011, 10:38 | ||
это определенно не правильно, я никогда с sql не работал, но в sqlite3.h который Вы показали присутствуют только сигнатуры функций, т.е. следует подключить какие-то библиотеки по любому. Почитайте внимательно туториал по sql откуда взяли код (откуда sqlite3.h), там должно быть написано что именно нужно подключать. (так понимаю с wxSqlite Вы так же работали )) |
| Автор: ivanstanislavovich 12.8.2011, 10:41 | ||
| компилятор "GNU GCC Compiler" при компиляции выдает замечания: на стрке sqlite3_open:
|
| Автор: asmdzen 12.8.2011, 10:44 | ||
| потому что вот это превращает вызов в
|
| Автор: ivanstanislavovich 12.8.2011, 10:48 | ||
| asmdzen, я знаю как подключать библиотеки в VS под Windows, но как это делать в CodeBlocks под Ubuntu - не знаю, мне кажется все пересмотрел. Примеры по wxSqlite и sqlite3 говорят, что нужно включать их в проект или компилировать снаружи, во всяком случае я так понял, и будет все ок. Но оба варианта заканчиваются разными обильными ошибками: не находятся другие библиотеки или еще что. Этот вопрос, с компиляцией, еще не разрешен. Да и вообще, сложилось впечатление, что мир отличный от Microsoft и Visual Studio очень слабо документирован и поддержуется. Уже неделю воюю: поставить IDE (CodeBlocks), настроить ее, включить интерфейс (wxWidgeth), подключить базу. На каждый шаг по 2-3 дня. С базой уже и дольше. Добавлено через 2 минуты и 10 секунд
Спасибо. Мне еще предстоит многому научиться. |
| Автор: asmdzen 12.8.2011, 10:54 |
| если wxwidgets уже скомпилены то можно вернутся к wxsqlite, думаю легче будет с ними работать, можно ведь подключить нужную библиотеку сразу. |
| Автор: ivanstanislavovich 12.8.2011, 11:20 | ||||
| asmdzen, хорошо. Пробую. компилирую под Ubuntu исходники. Результат - они не видны в C::B (CodeBlock), нужно явно прописывать пути для всех .h делал не по инструкции, а по шаблону, т.к. первая говорит о несуществующих вещах.
результат во вложении Сейчас пробую методом добавления wxSQLite в проект, как видел когда-то где-то в Интернете. Добавлено через 3 минуты и 40 секунд Метод добавления в проект привел к ошибке
Пробую разрешить проблему... |
| Автор: ivanstanislavovich 12.8.2011, 11:41 |
| Очень интересно, нашел куда включать библиотеки. Начало входить в ..Open после включения wxsqlite. А мне казалось, что wxsqlite лишь оболочка для sqlite... Кто думал, перестаньте думать на время, возможно у меня что-то вышло. Отпишусь Добавлено через 13 минут и 2 секунды Н.. не выходит. Я верно понимаю жизнь: если добавить библиотеку, то "inclufe ... .h" не нужен, хуже того, его просто может и не быть? |
| Автор: ivanstanislavovich 12.8.2011, 11:58 | ||||||||||
Попытки с SQLite
с wxSQLite пробую... |
| Автор: xvr 12.8.2011, 12:15 | ||
Нет, не верно - и библиотеку надо подключать, и include ...h делать (в исходнике). Иначе не соберется (или не откомпилируется) Посмотрите в FAQ раздела для начинающих - там есть статья о процессе компиляции/линковки. |
| Автор: ivanstanislavovich 12.8.2011, 12:18 | ||
| Попытки с wxSQLite Подключена библиотека - "was not declaed in this scope" Подключены .h - не находит файла Явное указание расположения wxsqlite3.h - что-то странное (во вложении) и приложение не запускается. Добавлено @ 12:19
Спасибо за информацию. Уже ознакамливаюсь |
| Автор: xvr 12.8.2011, 12:28 | ||
Ничего странного - ваше приложение собралось, но сломалось при старте (может не хватило каких то .so файлов) Запустите из консоли ldd -v на ваш исполняемый файл |
| Автор: ivanstanislavovich 12.8.2011, 13:23 |
| xvr, спасибо за помощь. Во вложении результат работы "ldd -v" |
| Автор: xvr 12.8.2011, 19:47 |
Вроде все на месте. А без sqlite программа не падает? |
| Автор: ivanstanislavovich 12.8.2011, 20:00 | ||
xvr,
Выключил .h, убрал код с About - падает. Убрал все Linker Library, search directories compiler, search directories linker - падает. пх-х-х... |
| Автор: Леопольд 12.8.2011, 20:33 |
| ivanstanislavovich, у меня была только одна похожая проблема. Брейк поинты не срабатывали внутри анонимного неймспейса. Лечил тем, что временно выносил код в глобальный скоуп. Думается мне это скорее проблема gdb, которым я дебажу... |
| Автор: ivanstanislavovich 12.8.2011, 21:06 | ||||
| Леопольд, спасибо учту на будущее, если не забуду Народ. Я немного продвинулся с мертвой точки. Удалось скомпилировать библиотеки так, что бы их и проект видел. Добавил к проекту статическую библиотеку, добавил в нее файлы sqlite и скомпилировал. После добавил полученную библиотеку в проект. Но появилась новая проблема:
What this ?! Кстати, еще вопрос. Я уже задаю вопросы отошедшие от вопроса в данной темы, мне новую ветку (тему) создавать ? P.S.: Пах-пх-пх. Ну почему все так сложно? Я таки понимаю, за что MS просит так много за свои продукты Добавлено через 4 минуты и 50 секунд это когда добавляю полученную библиотеку ... Добавлено через 9 минут и 35 секунд А если не добавлять библиотеку, то не находит sqlite3_open ... Добавлено через 11 минут и 14 секунд если компилировать вместе (два проекта, без статической библиотеки) то:
Да и метод не верный ... |
| Автор: ivanstanislavovich 12.8.2011, 21:23 | ||
| да, забыл сказать, что wxstatic это я так назвал очередной новый проект для проб Добавлено через 7 минут и 51 секунду сменил имя проекта на "MyTwxWithStaticLib" - ошибка таже
|
| Автор: ivanstanislavovich 12.8.2011, 21:41 | ||
а... зачем он там ищет мой проект ?! Как отучить? Добавлено через 1 минуту и 27 секунд ИХОО!!! Ща будет инфа, получилось |
| Автор: ivanstanislavovich 12.8.2011, 22:10 |
| Получилось. Делал так: Создал проект. Создал еще один - статичная библиотека. Добавил в проект файлы sqlite (http://www.sqlite.org/download.html), добавил в проект новые файлы (только для статичной библиотеки разрешил их использовать, компилировать), скомпилировал библиотеку, получил файл библиотеки, которую подключил в проект (для debug, release). Изменил и скомпилировал основной проект. * файлы по ссылке sqlite-amalgamation сложить в директорию sqlite-amalgamation-3070603 В БД примера есть записей, три штуки: a, b c. Но беда еще одна появилась, не отображается нормально текст, вместо этого я вижу квадрат с крестом внутри. Это я такое видел, когда шрифт не поддерживал язык (русский), но текст в БД - Английский. Очередная проблема. Есть идеи по возможным методам ее разрешения? |
| Автор: ivanstanislavovich 12.8.2011, 22:14 | ||
отмена, это я не умею пользоваться языком. в коде нужно внести изменения в callback функцию:
ВСЕМ СПАСИБО! КАК ОТБЛАГОДАРИТЬ ?! |