Russian Qt Forum
Октябрь 01, 2024, 10:17 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: Взаимодействие проектов  (Прочитано 8906 раз)
dr_Begemot
Гость
« : Май 07, 2009, 10:13 »

Проблема в следующем, есть динамическая библиотека на Qt. Однако в некоторых других прооектах нужно, чтобы эта библиотека была статической. Можно ли как-то прописать в pro-файлах этих других проектов, чтобы библиотека была перекомпилена в статическую либу?
Записан
spirit
Гость
« Ответ #1 : Май 07, 2009, 10:15 »

библиотеку надо статически собирать.
Записан
spirit
Гость
« Ответ #2 : Май 07, 2009, 10:17 »

вот, кстати, нашел про то как создавать либы, а так же как собирать приложения статически.
PS.  не ну действительно, че так сложно поискать по форуму, по вики?  Непонимающий
Записан
dr_Begemot
Гость
« Ответ #3 : Май 07, 2009, 10:28 »

вот, кстати, нашел про то как создавать либы, а так же как собирать приложения статически.
PS.  не ну действительно, че так сложно поискать по форуму, по вики?  Непонимающий

Я знаю как создавать dll и как делать их статическими, вопрос был в другом...
Записан
ритт
Гость
« Ответ #4 : Май 07, 2009, 11:11 »

вопрос был "Можно ли как-то прописать в pro-файлах этих других проектов, чтобы динамическая библиотека превратилась в статическую либу?" Улыбающийся
spirit ответил на вопрос.
Записан
Dodge
Гость
« Ответ #5 : Май 07, 2009, 13:06 »

Я знаю как создавать dll и как делать их статическими, вопрос был в другом...
если вы в качестве системы сборки вы используете qmake, то он при генерации Make - файла для библиотеки, создает цель для сборки - staticlib. Т.о. указав при сборке в качестве цельи - staticlib, вы можете собрать библиотеку статически.
Код:
make staticlib

З.Ы. проверено только под линукс, как с другими платформами я не знаю.
Записан
ритт
Гость
« Ответ #6 : Май 07, 2009, 20:58 »

в проекте cmake вроде бы можно сразу указать сборку динамической и статической либы...
Записан
Dodge
Гость
« Ответ #7 : Май 07, 2009, 22:06 »

в проекте cmake вроде бы можно сразу указать сборку динамической и статической либы...
если они будут лежать рядом, то линкер какую возмет? ... имена то одинаковые
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #8 : Май 07, 2009, 22:29 »

>>если они будут лежать рядом, то линкер какую возмет? ... имена то одинаковые
туже, что и файловая система Подмигивающий
Записан

Юра.
Dodge
Гость
« Ответ #9 : Май 07, 2009, 22:34 »

не понял... что первое по запросу попадет? ... это не серьезно  Улыбающийся
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #10 : Май 07, 2009, 22:43 »

не может быть двух одинаковых файловых объекта. Т.е. два файла с одинаковыми именами в одном каталоге.
Записан

Юра.
Dodge
Гость
« Ответ #11 : Май 07, 2009, 22:55 »

не может быть двух одинаковых файловых объекта. Т.е. два файла с одинаковыми именами в одном каталоге.
я не идиот  Подмигивающий
я имел ввиду имена библиотек. Если мы собирем библиотеку mytest статически и динамически то получим 2 файла (пример для gcc): libmytest.so и libmytest.a
При подключении мы указываем имя библиотеки: "-lmytest". Так вот какой из файлов, линкер возмет?
Записан
ритт
Гость
« Ответ #12 : Май 08, 2009, 00:01 »

-lmytest при наличии libmytest.so будет использовать его, а -llibmytest.a будет искать .а-файл
кажется, так...могу ошибаться...
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #13 : Май 08, 2009, 08:07 »

>>libmytest.so и libmytest.a
ну для линя оно может и так. А вот для виндовоза при создании динамической библиотеки генерятся два файла
mytest.dll и mytest.a
и для статической один
mytest.a

как я понял в первом случае a-файл некая обёртка для dll'ки. Так что в одном каталоге, на виндовозе, две сборки держать не удастся.
Записан

Юра.
Dodge
Гость
« Ответ #14 : Май 08, 2009, 14:21 »

>>libmytest.so и libmytest.a
ну для линя оно может и так. А вот для виндовоза при создании динамической библиотеки генерятся два файла
mytest.dll и mytest.a
и для статической один
mytest.a

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

Тогда проверь еще пожалуйста в Makefile'е, генерит qmake цель для staticlib? ... чтоб сразу со всем разобраться.
лень винду грузить смотреть.
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.13 секунд. Запросов: 23.