LINUX.ORG.RU

Сообщения ikseg

 

dlopen - pthread_detach

Форум — Development

Загружаю библиотеку вызовом dlopen. Получаю 0. dlerror выдает следующую строчку: libPLX9050.so: undefined symbol: pthread_detach

В библиотеке libPLX9050.so используется boost.

#include "boost/thread/thread.hpp"
#include "boost/thread/mutex.hpp"
#include "boost/thread/condition.hpp"
#include "boost/lambda/lambda.hpp"

Компилировал с ключом -lboost_thread.

С чем может быть связана данная проблема?

ikseg
()

коллизия внутри кода при вызове dlopen

Форум — Development

Используются две динамические библиотеки.( libPLX9054.so, libLan150.so)

В программе происходит загрузка библиотеки посредством вызова dlopen. В загружаемой библиотеке так же происходит загрузка другой библиотеки опять же посредством вызова функции dlopen. В обоих библиотеках содержится строковая константа:

 char    InterfaceName[] = "IPLX9054"; // описана в библиотеке libPLX9054.so
 char    InterfaceName[] = "ILan150"; // описана в библиотеке libLan150.so
Т.е. очередность такая:

  • загрузка программой библиотеки libLan150.so
  • загрузка билиотекой libLan150.so библиотеки libPLX9054.so

Обнаружил, что при выполнении кода в libPLX9054.so InterfaceName[] = «ILan150» , a не «IPLX9054». Как такое может быть? dlopen вызывается с флагом RTLD_NOW

ikseg
()

VirtualBox NAT Windows 1c

Форум — Admin

Коллеги! Такая вот задачка...

Необходимо запустить 1с предприятие на компьютере с предустановленной ОС Linux.

На машине установлена Ubuntu 11.04. Так же установлен VirtualBox с виртуальной машиной Windows XP. В виртуальной машине установлена программа «1с предприятие». Проблема в следующем:

при запуске «1с предприятие» проходит авторизацию по сети через порты 135,475. Виртуалка работает под NAT, а это значит, что надо пробросить порты. В описании к VirtualBox указано, что нельзя пробрасывать порты ниже 1024. Собственно, попробовал, убедился, что не работает. Как заставить работать это хозяйство через NAT?

Можно ли в Ubuntu весь трафик приходящий на порты 135,475 отразить на порты 10001,10002, например, и пробрасывать в виртуалку 10001,10002, а не 135,475?

Насколько правильно делать соединение типа мост для виртуалки? Это работает, но бывают конфликты. Сетевая карта одна.

ikseg
()

gconf/QTCreator/static-dynamic lib linking

Форум — Development

Недавно начал осваивать QT под Linux. Возник небольшой вопрос...

У меня есть скомпилированная статическая библиотека. Библиотека содержит в себе необходимый функционал для работы с gconf. Консольные приложения скопилированные в Netbeans с использованием указанной библиотеки успешно запускаются и отрабатывают, если в настройках проекта прописан путь к библиотекам *.so и указаны названия библиотек.

Необходимо использовать данную статическую библиотеку в проекте выполненом на QTCreator. Я добавил в файл test.pro строчки:


LIBS += /home/xray/LibraryLoader/liblibraryloader.a -ldl \
/usr/lib/libgconf2-4/2/libgconfbackend-evoldap.so  \
/usr/lib/libgconf2-4/2/libgconfbackend-oldxml.so \
/usr/lib/libgconf2-4/2/libgconfbackend-xml.so

Помимо этого, добавил в настройках проекта переменную LD_LIBRARY_PATH=/usr/lib/libgconf2-4/2/ . Без этого действия при запуске программы в отладчике появлялось сообщение


/home/xray/testLibs-build-desktop/testLibs: error while loading shared libraries: libgconfbackend-evoldap.so: cannot open shared object file: No such file or directory

Теперь, запуская debug, программа начинает работать, но останавливается на строчке в статической библиотеке liblibraryloader.a. Строчка: g_type_init(); // инициализация api gconf Похоже, что таки не удалось получить тело функции g_type_init() из указанных *.so. В консоли следующий вывод:


Starting /home/xray/testLibs-build-desktop/testLibs...
*** glibc detected *** /home/xray/testLibs-build-desktop/testLibs: malloc(): memory corruption: 0x09ab7900 ***
======= Backtrace: =========
/lib/libc.so.6(+0x6c501)[0x903501]
/lib/libc.so.6(+0x6f2fc)[0x9062fc]
...
...
b76fe000-b7705000 r--s 00000000 08:07 6393       /usr/lib/gconv/gconv-modules.cache
b7705000-b7706000 r--p 002a1000 08:07 7283       /usr/lib/locale/locale-archive
b7706000-b7708000 rw-p 00000000 00:00 0 
bf7fc000-bf81d000 rw-p 00000000 00:00 0          [stack]
The program has unexpectedly finished.
/home/xray/testLibs-build-desktop/testLibs exited with code 0

Буду признателен любым полезным советам.

ikseg
()

RSS подписка на новые темы