Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > Сборка DLL на разных платформах


Автор: loneybibi 16.5.2011, 10:08
Подскажите пожалуйста!  smile 
При сборке динамической библиотеки в unix компилятор подставляет к Target имени еще префикс "lib", в итоге получаем что то вроде "libMyLib.so". А при переносе в Windows просто "MyLib.dll". Как сделать так что бы имя компилируемой библиотеки было одинаковым и там и там? Пробовал:

Код

TARGET = $$qtLibraryTarget(MyLib) 


Все равно на unix ставит префикс lib.

Автор: loneybibi 18.5.2011, 08:56
Вообщем не нашел как эти префиксы и суффиксы отключить и я так понял тут тоже не в курсе никто smile , решил сделать для разных ОС разные имена Target в .pro файле smile и добавлять префикс "lib" для имен Windows так:
Код

unix:{TARGET=MyLibrary
}else{TARGET=$$qtLibraryTarget(libMyLibrary)}

Автор: borisbn 4.10.2011, 16:13
up!!!
столкнулся с точно такой же проблемой.
в документации сказано:
Цитата

The target file name for the library is platform-dependent. For example, on X11 and Mac OS X, the library name will be prefixed by lib; on Windows, no prefix is added to the file name. 

может кто нашёлся упорный и победил это ?

Дело в том, что у меня есть Host-application, которое загружает мою dll-ку динамически (dlopen/dlsym). И если имя библиотеки не соответствует тому, что ожидает host-app, я не могу отлаживать мою dll-ку (пардон, so-шку).

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)