Что нового

пользовательские библиотеки в разных каталогах

Shinoby

Новичок
Сообщения
81
Репутация
2
не знаю как принято, но я разные проекты веду в разных каталогах.
при этом есть библиотеки, которые используются несколькими разными программами.
и вот тут возникают проблемы: при компилировании библиотека должна быть в том же каталоге что и скрипт. а при использовании SciTE - в каталоге include АутоИТа.
т.е. постоянно приходится отслеживать, какой именно файл библиотеки подвергся изменению после чего раскидываю его во все места где он присутствует.

очень не удобно и переодически возникают траблы: вот библиотека все должно быть ОК и из едитора все работает, а скомпилированный - нет :stars:

можно ли заставить компилятор искать библиотеки только в каталоге Includ АутоИТа?
 

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
Shinoby [?]
при компилировании библиотека должна быть в том же каталоге что и скрипт
Всё зависит от кавычек: <> или "". Если <>, то сначала поиск будет происходить в папке Include, затем в папке скрипта. Если "" - наоборот. http://autoit-script.ru/autoit3_docs/keywords/include.htm
Поэтому копируйте все свои UDF в Include, а в скриптах пропишите угловые кавычки
Код:
#include <MyUDF.au3>
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
А почему не указать полный путь к библиотеке?
 
Автор
S

Shinoby

Новичок
Сообщения
81
Репутация
2
CreatoR сказал(а):
А почему не указать полный путь к библиотеке?

кхм.... а можно?! :laugh:

InnI у меня как раз так, как Вы предлагаете, но проблему описанную в начале - не снимает: если библиотека в инклюде есть а в каталоге скрипта нет - то во время компиляции выходила ошибка.
 

AZJIO

Меценат
Меценат
Сообщения
2,874
Репутация
1,194
Shinoby [?]
и вот тут возникают проблемы: при компилировании библиотека должна быть в том же каталоге что и скрипт. а при использовании SciTE - в каталоге include АутоИТа.
Хотите сказать что у вас при запуске SciTE видит include и берёт из него, а компилятор AutoIt3Wrapper не видит каталога include и берёт из папки скрипта? Вообще AutoIt3Wrapper берёт информацию о нахождении каталога include из реестра (и там могут быть перечислено несколько каталогов), и если там не указано то могут быть проблемы. Тут зависит от версии AutoIt3Wrapper. Я когда-то предлагал после опроса инфы в реестре и при отсутствии этой инфы проверить ещё каталог на 2 уровня выше с переходом в include (../../include), то есть как бы каталог, который соответствует стандартному нахождению AutoIt3Wrapper в структуре установочной папки, но не уверен, что это сделали. так что проверьте в реестре HKCU\Software\AutoIt v3\Autoit параметр Include. То что в SciTE работает, то AutoIt3Wrapper может использовать путь из конфига au3.properties (autoit3dir=$(SciteDefaultHome)\..). У меня когда то была проблема с путями портабельной сборки именно из-за этого параметра, но теперь там относительный путь и проблема исчезла.
 

Z_Lenar

Продвинутый
Сообщения
209
Репутация
52
Shinoby
Есть способ удобный при отладке и релизе проекта. Измените значение PATH среды выполнения. Т.е. пропишите туда путь где лежат все библиотеки. В XP Компьютер->Свойства вкладка дополнительно->Переменные среды->Выбираете Path в нижнем списке->Изменить, добавляете к значению ';' без кавычек и путь к каталогу библиотек. Используете библиотеки как будто они находятся в каталоге с проектом. Путь надо указывать в формате 8.3 (C:\Progra~1\...)
При релизе(возможности запуска на другом компьютере) надо будет просто закидывать последние версии библиотек в загружаемый архив.
 
Автор
S

Shinoby

Новичок
Сообщения
81
Репутация
2
Z_Lenar
не помогло.
при отладке в Scite - все хорошо, используются библиотеки из includ, но при использовании Aut2Exe - выходит облом, так как он не находит пользовательских библиотек, хотя они лежат в includ. ему нужно, что бы библиотека была в том же каталоге.

AZJIO
проверил реестр, includ - вообще нет ни в пользователе, ни в машине.
дописал параметр с указанием includ в бете - Aut2Exe стал компилировать, но...

UPDATE
выяснил следующую вещь:
Scite - оперирует базовым includ а Aut2Exe я пользуюсь из Беты. как говорил Z_Lenar прописал переменную среду инклюда в бете - Scite все равно не находит библиотеки.

т.е. на данный момент определил для себя 2 возможных решения:
1) писать полный путь к файлу библиотеки по совету CreatoR
2) дописать переменную в реестр, но в стандартную папку includ а не бету.
..... гыыы ну и 3е решение нашлось:
3) отправляю всю папку Scite в каталог beta.

теперь только нужно проверить все это на другом компе под 7кой. и можно пользоваться комбо-методом 2+3.

спасибо всем за помощь!
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
В ScitTe можно задать пользовательский каталог, где будут искаться файлы для include
Ctrl + 1 (SciTE config) и на первой же вкладке general 1, укажите User Include Folder
 
Верх