Здравствуйте, гость ( Вход | Регистрация )
kwisp | Дата 17.5.2009, 17:52 |
эт наверное я не понимаю. я думал надо запускать программу с определенным PATH - это решается с помощью батника. точно так же можно имея на машине несколько вариантов(версий) библиотеки Qt и несколько компиляторов запуская определенный батник собирать проекты различными компиляторами и используя различные библиотеки... не коверкая системный PATH каждый раз. ведь надо как-то отлаживать программу и при этом не кидать каждый раз dll-ки в debug.. и не будешь кидать их в дебуг, пропишешь путь к ним в PATH в батнике и должно заработать. впрочем если я что то перепутал то простите. завтра с работы могу кинуть свои батники если надо. |
|
hmmm | Дата 17.5.2009, 14:57 |
Этот вариант будет пригоден скорее уже для реализованного приложения нежели для процесса разработки.. ведь надо как-то отлаживать программу и при этом не кидать каждый раз dll-ки в debug.. самое печальное в некоторых книгах например Хортона по програмиированию в VSC++ 2008 указана такая проблема и они как раз и переносят файлик тупо в debug. Странное на мой взгляд решение.. Наверное буду решать этот вопрос динамическим подключением... Кстати возможно я иду несколько не тем путём.. потому что мне в идеале нужна не столько прям сама dll сколько возможность собрать модуль который можно безболезненно подключать к различным проектам + возможность его отлаживать и проч.. тоесть фактически просто некоторый набор cpp и h, ui файлов которые можно подключать к разным проектам. Насколько я понял это решается именно через выделение их в отдельную библиотеку (а в рамках студии помещение их в отдельный проект) и компиляции как библиотеки в моём случае dll. Возможно я что-то путаю или не понимаю, но перелопатил много материалла и на prog.org.ru и здесь и в документации и другое пути пока не нашёл. =(( |
|
kwisp | Дата 17.5.2009, 13:51 |
з.ы. только если конечно мы можем указать path не глобально а исключительно для программы. Не совсем правда соображу как это сделать. в винде можно в батнике прописать свой PATH(с помощью set) и потом запустить программу PATH прописанная таким образом будет действительна только для сеанса батника и не будетп ортить глобальную PATH для всех прог и винды. естественно прогу запускать через батник что-то типа =======файл toStart.cmd===== @set PATH=пишем что надо для запуска проги имя запускаемой программы ======================= теперь прога запустится в нужном окружении |
|
Litkevich Yuriy | Дата 17.5.2009, 12:35 |
я думал проблема может быть решена каким либо шаманством с настройками проекта solutinа ну в ней я думаю можно так сделать, но я студией не пользуюсь |
|
hmmm | Дата 17.5.2009, 12:25 |
з.ы. только если конечно мы можем указать path не глобально а исключительно для программы. Не совсем правда соображу как это сделать. | |
hmmm | Дата 17.5.2009, 12:23 |
Укажи в переменной среды PATH, путь к своей библиотеке. Виндовоз, не найдя в каталоге с exe'шником нужной dll'ки, полезит просматривать пути указанные в переменной PATH. Жаль(( я думал проблема может быть решена каким либо шаманством с настройками проекта solutinа.. или ещё как. Для каждой своей либы такое делать не удобно, да и разрабатываю не один, поэтому надо и остальным прописывать.. вероятно придётся делать не статическую линковку а через QLibrary или QPluginLoader, что не оч удобно так как довольно много классов от туда хватать буду в разных местах программы, получается придётся делать синглтон для загрузки самой либы, чтобы не указывать в каждом месте её загрузку.. =( |
|
Litkevich Yuriy | Дата 17.5.2009, 2:15 |
Укажи в переменной среды PATH, путь к своей библиотеке. Виндовоз, не найдя в каталоге с exe'шником нужной dll'ки, полезит просматривать пути указанные в переменной PATH. | |
hmmm | Дата 17.5.2009, 0:59 |
Вопрос совсем не в тему но пробовал на примерах из этой темы поэтому вопрос именно сюда. Открыл тестовый проект в VS. Тоесть два проекта - один либа другой main. Собираб либу как dll и линкую к главному проекту. Прописываю в свойствах главное проекта связь с lib файлу из либы и пишу простенький header для использования функции из библиотеки. Когда запускаю на выполнение не может найти dll. Кидаю dll в папку debug c главным проектом - всё работает отлично. Скажите а как-нибудь можно реализовывать разработку чтобы не надо было постоянно кидать длл-ку ??Наверняка ведь как-то можно это подругому делать?? Просто в другом своём приложении хочу вынести ряд классов и функций в либу и не хотелось бы всё время переносить длл-ку.. глупо оно как-то=((( |
|
ViGOur | Дата 31.3.2008, 19:27 |
Библиотека должна быть статической, если заметил там я создал еще def файл в папке проекта библиотеки и в pro файле указал его. Извини, ошибся, библиотека должна быть динамической.Думал о статической библиотеке, нужно было написать слово динамическая, а написал статическая. |
|
silart | Дата 31.3.2008, 15:48 |
Да вроде не должно быть зависимости статическая или динамическая сборка. Ведь может понадобиться как та так и другая сборка одновременно в проекте. Последний архив, я компилил так: без qmake -project, чтобы не портить pro файл.Разумеется как для exe так и для dll. Библиотека должна быть статической, если заметил там я создал еще def файл в папке проекта библиотеки и в pro файле указал его. Механизм QLibrary мутный какой-то. lib-файл тоже не хочет загружать... Вообще это все нужно для плагинов, мне он необязательно нужен. Я могу и статически связать dll с exe. Но все равно никак не работает. С QApplication вроде работало, но только немодальный диалог создавало, а модальнывй никак... В чем же проблема... |
|
Просмотр темы полностью (откроется в новом окне) | |
Текстовая версия | Сейчас: 29.4.2024, 16:36 |