Форум программистов CodeGuru
18 Январь 2018, 10:07:48 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Войти
Новости:
 
   Начало   Помощь Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: codeblocks и динамическая библотека  (Прочитано 15753 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Stealth
Новичок
*
Офлайн Офлайн

Сообщений: 5


Просмотр профиля
« : 08 Июль 2010, 22:09:50 »

Занялся тут кросплатформенным программированием... Начал использовать codeblocks и wxwidgets, но опыта малова-то
У меня есть порект, который состоит из нескольких программ и они используют одну библиотеку, в которой есть очень полезные классы и прочее. Логично было бы туда засунуть и несколько формочек. когда я это делаю (wxsmith) библиотека либо не компилиться либо не линкится. сейчас я еще не портировал её на винду, только на линуксе сижу. у меня вообще и раньше не получалось такое сделать (и в билдере...). может у кого-нибуть есть подобный опыт?
Записан
3V
Администратор
Ветеран
*****
Офлайн Офлайн

Сообщений: 1347



Просмотр профиля WWW
« Ответ #1 : 10 Июль 2010, 12:38:06 »

когда я это делаю (wxsmith) библиотека либо не компилиться либо не линкится.

А какие сообщения об ошибках выдаются ?
Скорее всего, саму библиотеку необходимо линковать с wxwidgets.
Записан

Stealth
Новичок
*
Офлайн Офлайн

Сообщений: 5


Просмотр профиля
« Ответ #2 : 10 Июль 2010, 22:46:43 »

ну на линуксе он не может найти библиотеку виджетеов, когда указываю где она, говорит, что в ней куча ошибок: не может найти какие-то файлы (например setup.h) и не может найти соответственно определения, которые содержатся в этих файлах

на винде
||=== ggd, dll_main ===|
ld.exe||cannot find -lwxbase28ud|
||=== Build finished: 1 errors, 0 warnings ===|


я вобще не понял чего это означает (это при линковке уже), но стало быть путь находит правильно

Кто нибуть запихивал в библиотеку формочку, или я такой уникальный Улыбка???
Записан
3V
Администратор
Ветеран
*****
Офлайн Офлайн

Сообщений: 1347



Просмотр профиля WWW
« Ответ #3 : 11 Июль 2010, 00:01:28 »

ну на линуксе он не может найти библиотеку виджетеов, когда указываю где она, говорит, что в ней куча ошибок

Э... хотелось бы все-таки все сообщения посмотреть.
Тут главный вопрос в том, не находил ли компилятор заголовочные файлы, или линкер саму библиотеку.


на винде
||=== ggd, dll_main ===|
ld.exe||cannot find -lwxbase28ud|
||=== Build finished: 1 errors, 0 warnings ===|

Тут линкер не может библиотеку найти.
То, что это в винде...
Похоже, там аналог линуксового ld реализован (ld.exe).
Вообще, в linux подобная штука возникает, когда либа установлена куда-то, а этот путь не содержится в ld.so.conf. Решается, соответственно, добавлением пути в /etc/ld.so.conf. Т.е. смотрим где либа лежит и путь к каталогу с либой вписываем в этот файл. Потом логинимся под рутом и делаем ldconfig.
Записан

Stealth
Новичок
*
Офлайн Офлайн

Сообщений: 5


Просмотр профиля
« Ответ #4 : 15 Июль 2010, 12:37:48 »

Цитировать
Э... хотелось бы все-таки все сообщения посмотреть.

Это будет слишком длинно, да и смотреть нечего. сча раскажу. Когда комплю (на ubuntu) то вываливается ошибка: нет накого файла wx/wx.h (который прекрасно находится другими билдтаргетами, с такими же настройками). Потом указываю где его найти в опцях проекта: usr/include/wx-2.8. Тогда компилятор вываливает ошибку в файле platform.h дескать не может найти setup.h. я почитал по поводу этого, и увидел, что такое обычно на винде (на линуксе ни у кого не было) и там было лечение. я попытался сделать тоже самое, только интерпретировать для линукса, и ничего хорошего не вышло. Дальше у компилятора одни и теже ошибки, вызванные тем, что не может включить файл setup.h (там нужные предкомпилы дефайны и пр.)

Вот такая история. Хочу напомнить (это меня не мало удивляет), что когда я создаю проект приложения с использованием виджетов, то все хорошо, а когда я создаю динамическую библиотеку и пытают в ней виджеты использовать, то ничего не получается - на линуксе не компилится, а на винде не линкится.

На винде, кстати, такая библиотека уже добавлена в путь поиска в проекте Грустный

Может быть пропробуете создать в коде блоксе подобные проект - фреймовое приложение - кнопочка на нем. нажимаешь её и видишь диалоговое окно, которое подгружается из динамической библиотеки
Записан
3V
Администратор
Ветеран
*****
Офлайн Офлайн

Сообщений: 1347



Просмотр профиля WWW
« Ответ #5 : 16 Июль 2010, 20:11:43 »

Тогда компилятор вываливает ошибку в файле platform.h дескать не может найти setup.h. я почитал по поводу этого, и увидел, что такое обычно на винде (на линуксе ни у кого не было) и там было лечение. я попытался сделать тоже самое, только интерпретировать для линукса, и ничего хорошего не вышло. Дальше у компилятора одни и теже ошибки, вызванные тем, что не может включить файл setup.h (там нужные предкомпилы дефайны и пр.)

Хм... может быть, вообще выключить использование precompiled headers ?
На винде иногда (не помню с чем) помогало.

Вот такая история. Хочу напомнить (это меня не мало удивляет), что когда я создаю проект приложения с использованием виджетов, то все хорошо, а когда я создаю динамическую библиотеку и пытают в ней виджеты использовать, то ничего не получается - на линуксе не компилится, а на винде не линкится.

Странно. Хотелось бы все-таки посмотреть, что за ошибки.

На винде, кстати, такая библиотека уже добавлена в путь поиска в проекте Грустный

Можно попробовать еще в переменные окружения прописать путь к либам и инклудам.

Может быть пропробуете создать в коде блоксе подобные проект - фреймовое приложение - кнопочка на нем. нажимаешь её и видишь диалоговое окно, которое подгружается из динамической библиотеки

Да может попробую - если руки дойдут завтра (сегодня - пятничное пиво Улыбка ).
Если что - напомните плиз Улыбка
Записан

Страниц: [1]   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2015, Simple Machines Valid XHTML 1.0! Valid CSS!