Название: DLL на Windows и Linux Отправлено: radislav72 от Май 09, 2011, 07:12 Есть проект dll (с названием holidays). На Windows в результате компиляции получается файл holidays.dll, который и можно использовать в программе (и там все ОК). На Linux, насколько я понимаю, должен получиться файл holidays.so, но его нет, хотя компиляция проходит успешно. Зато получается какойто-файл libholidays.so
Как должен называться файл библиотеки на Linux? Название: Re: DLL на Windows и Linux Отправлено: lit-uriy от Май 09, 2011, 07:36 libholidays.so
Название: Re: DLL на Windows и Linux Отправлено: radislav72 от Май 09, 2011, 08:11 Спасибо за ответ.
А можно ли переименовать получившийся файл в holidays.so- ведь в проекте программ (использующих dll) при линковке используется ето имя: Код: QLibrary lib("holidays"); Или нужно в самих прогах, использующих dll, юзать имя libholidays, и под Windows перекомпилить либу с именем libholidays.dll? Название: Re: DLL на Windows и Linux Отправлено: Авварон от Май 09, 2011, 09:18 На линуксе (маке) gcc -l$NAME ищет библиотеку с именем lib$NAME.so (lib$NAME.dylib)
Название: Re: DLL на Windows и Linux Отправлено: lit-uriy от Май 09, 2011, 09:56 radislav72 тыб описание класса QLibrary почитал
Цитировать For example, after successfully loading the "GL" library on Unix platforms, fileName() will return "libGL.so". If the file name was originally passed as "/usr/lib/libGL", fileName() will return "/usr/lib/libGL.so". Название: Re: DLL на Windows и Linux Отправлено: radislav72 от Май 09, 2011, 10:32 radislav72 ты б описание класса QLibrary почитал Спасибо, привык к точному указанию имен в Виндовс и даже в голову не пришло такое простое... Название: Re: DLL на Windows и Linux Отправлено: radislav72 от Май 11, 2011, 06:57 Были еще проблемы с тем, что в Windows dll находится автоматически, а в Linux- нет (dll расположена в папке программы). Может кому интересно будет: решилось таким образом:
1. В pro- файл библиотеки додал строчку Код: CONFIG += plugin 2. При загрузке библиотеки указывал точный путь, так как по умолчанию в Виндовс папка программы сканируется на наличие библиотеки, а в Линукс- нет (там используется системная папка по умолчанию) Код: QLibrary lib(QApplication::applicationDirPath() + "/" + + "holidays"); Может, у кого замечания по правильности подхода будут... Название: Re: DLL на Windows и Linux Отправлено: alex12 от Май 11, 2011, 15:07 LD_LIBRARY_PATH
|