Используются две динамические библиотеки.( 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
Необходимо запустить 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?
Насколько правильно делать соединение типа мост для виртуалки? Это работает, но бывают конфликты. Сетевая карта одна.
Недавно начал осваивать QT под Linux. Возник небольшой вопрос...
У меня есть скомпилированная статическая библиотека. Библиотека содержит в себе необходимый функционал для работы с gconf. Консольные приложения скопилированные в Netbeans с использованием указанной библиотеки успешно запускаются и отрабатывают, если в настройках проекта прописан путь к библиотекам *.so и указаны названия библиотек.
Необходимо использовать данную статическую библиотеку в проекте выполненом на QTCreator.
Я добавил в файл test.pro строчки:
Помимо этого, добавил в настройках проекта переменную 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.
В консоли следующий вывод: