Не может найти модуль, хотя он есть

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Не может найти модуль, хотя он есть

Сообщение Tango » 31.05.2012 17:16:39

Здравствуйте.

Lazarus 1.1-37460 FPC 2.6.1 Windows 7, Linux Mint 13
При сборки даёт такую ошибку, хотя этот модуль есть
DBDCLDialogMain.pas(37,1) Fatal: Can not find IBConnection used by DBDCLDialogMain, ppu=C:\lazarus\fpc\2.6.1\units\i386-win32\fcl-db\ibconnection.ppu

вот интересная секция uses:
Код: Выделить всё
{$IFDEF MSWINDOWS}
Windows, ActiveX, ComObj, wininet, {$IFDEF DELPHI}MSScriptControl_TLB,{$ENDIF} ShellApi,
{$ENDIF}
{$IFDEF UNIX}
linux,
{$ENDIF}
{$IFDEF ADO}
ADODB, ADOConst, ADOInt,
{$ENDIF}
{$IFDEF BDE}
BDE, DBClient, DBTables, Bdeconst,
{$ENDIF}
{$IFDEF IB}
IBDatabase, IBTable, IBCustomDataSet, IBSQL, IBQuery, IBUpdateSQL, IBDCLConst, IBVisualConst, IBXConst,
{$ENDIF}
{$IFDEF UNIXIB}
[b]ibconnection[/b], sqldb,
{$ENDIF}
{$IFDEF ZEOS}
ZSqlMetadata, ZStoredProcedure, ZSqlUpdate, ZAbstractRODataset, ZAbstractDataset, ZDataset, ZConnection,
{$ENDIF}
Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
ExtCtrls, Grids, DB, StdCtrls, ComCtrls, Dialogs, dbctrls,
Buttons, ExtDlgs, Menus, dbgrids,
{$IFDEF FPC}
FileUtil, EditBtn,
{$ENDIF}
{$IFDEF DELPHI}
JPEG,
{$ENDIF}
sumprops;


дополнение:

каталог вывода модулей (опция -FU) lib\$(TargetCPU)-$(TargetOS)
А в ошибках пишет:
Параметры были изменены, перекомпиляция с очисткой (ключ -B)
PPU Loading D:\Tango\My Projects\DCL\Multi\UNIXIB\lib\i386-win32\ibconnection.ppu
PPU Source: ibconnection.pp not found
Recompiling IBConnection, checksum changed for System
DBDCLDialogMain.pas(37,1) Fatal: Can not find IBConnection used by DBDCLDialogMain, ppu=C:\lazarus\fpc\2.6.1\units\i386-win32\fcl-db\ibconnection.ppu

настораживает то что он ищет модули в папки проекта, а потом пишет что в C:\lazarus\fpc\2.6.1\units\i386-win32\ их нет.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Tango
постоялец
 
Сообщения: 162
Зарегистрирован: 31.05.2012 17:07:30

Re: Не может найти модуль, хотя он есть

Сообщение hinst » 01.06.2012 00:31:04

ох блин сколько раз я такое наблюдал. Модули есть, а он их не видит. Модули, они такие... Пути к ним прописаны в множестве пакетов, с какими-нибудь подстановочными переменными, потом у каждого модуля есть исходный код, ppu файл, obj файл. Дополнительную трудность создаёт то, что при сборке разных пакетов компилятору передаются разные пути к модулям.

Вот точно помню, что такое ошибко
Код: Выделить всё
Recompiling IBConnection, checksum changed for System

у меня было. По-моему даже не один раз. Тоже он что-то там пытался собрать заново и не мог. Потому, что то, что он хочет собрать заново, было уже собрано в рамках правильного пакета раньше с правильными путями, а вот заново он хочет собрать совершенно зря, т.к сейчас-то он собирает уже другой пакет с другими путями, а от того старого пакета он просто зависит от бинарников и пути к исходникам необходимым для пересборки текущий пакет не содержит. То есть, текущий пакет\проект должен использовать бинарники того пакета, от которого он зависит, не пересобирая заново эту зависимость. Он и не может её пересобрать, т.к у него путей к исходникам зависимости нет. Как бы и не надо. If you know what I mean. В этом и есть корень проблемы. А вот почему он думает, что checksum changed - не знаю. Вот не помню, как исправил в тот раз. Могу лишь предположить, что нужно чего-нибудь вычистить, какие-нибудь бинарники. Либо тупо прописать путь к этому модулю в настройках того пакета или проекта, который он собирает в тот момент, когда спотыкается. Либо просто вычистить весь FPC и весь Lazarus, удалить все настройки и поставить заново стабильный лазарус (0.9.30.что-то там) и стабильный (2.6.что-то там) FPC. Последний вариант самый надёжный.

Надеюсь мой ответ вам помог
Аватара пользователя
hinst
энтузиаст
 
Сообщения: 781
Зарегистрирован: 12.04.2008 18:32:38

Re: Не может найти модуль, хотя он есть

Сообщение Tango » 01.06.2012 13:46:42

Вы не поверите, но при таком подходе:
ibconnection in 'C:\lazarus\fpc\2.6.1\units\i386-win32\fcl-db\ibconnection.ppu',
он всё равно выдаёт те же ошибки, я поставил версию 1.1 как раз по причине что 0.9.30.4 давала подобные ошибки.
Аватара пользователя
Tango
постоялец
 
Сообщения: 162
Зарегистрирован: 31.05.2012 17:07:30

Re: Не может найти модуль, хотя он есть

Сообщение hinst » 01.06.2012 15:28:03

У вас, наверное, модуль ibconnection был собран с другим модулем system. Это вполне возможно если он был собран в другом компиляторе или ещё как-нибудь, я не знаю... надо этот ibconnection пересобрать из исходника
Аватара пользователя
hinst
энтузиаст
 
Сообщения: 781
Зарегистрирован: 12.04.2008 18:32:38

Re: Не может найти модуль, хотя он есть

Сообщение Tango » 01.06.2012 16:56:19

создал простое приложение с IBConnection, оно компилится и работает.

Добавлено спустя 33 минуты 57 секунд:
Ура! Собрался, надо было удалить папку lib в папке проекта.
Аватара пользователя
Tango
постоялец
 
Сообщения: 162
Зарегистрирован: 31.05.2012 17:07:30

Re: Не может найти модуль, хотя он есть

Сообщение timofas » 30.08.2013 08:36:34

столкнулся с выше описанной проблемой, lib не удалял, а добавил в неё искомые лазарусом (1.0.12, fpc 262, svn 42478) файлы.

хочу заметить что проект буквально вчера компилился, с чего он перестал с утра искать файлы в лазаре, а начал их искать в проекте ХЗ!

Добавлено спустя 44 минуты 52 секунды:
он их по кругу теряет, уже 5й добавил, скомпилил, дописал одну строчку, он теперь потерял "forms" чтотослучилось? какбыть? чтоделать?

Добавлено спустя 56 минут 2 секунды:
ещё добавлю, при потере выдает ошибку, нашёл, скопировал в проект, скомпилировал, ура!, ещё разок пробую компилировать, нет я ненапишу это слово, но потерян новый ppu файлик! из внутренностей толькочто скопированного ppu, всё дело в путях.. куда смотреть ведь сам лазарус указывает путь где он не может увидеть файл (а копировать приходится в папку с проектом, может это БАГ какйто?
timofas
новенький
 
Сообщения: 20
Зарегистрирован: 26.07.2013 14:55:40

Re: Не может найти модуль, хотя он есть

Сообщение Лекс Айрин » 30.08.2013 15:35:00

timofas, попробуй пересобрать лазаря с очисткой... И, кстати, под линуксом все нормально?

А насчет чего он их там начал искать... так он сам их туда положил.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Не может найти модуль, хотя он есть

Сообщение Alex2013 » 01.09.2013 11:49:29

Если модуль всего один и реально присутствует на твоем диске почему бы его просто не скинуть в каталог проекта ? Я так всегда делаю при подобных глюках
Alex2013
долгожитель
 
Сообщения: 3145
Зарегистрирован: 03.04.2013 11:59:44

Re: Не может найти модуль, хотя он есть

Сообщение timofas » 01.09.2013 16:05:06

он по кругу их теряет, т.е. при следующей компиляции проекта он теряет следующий по списку компонент! мне что весь лазарь переложить в свой проект

а на другом проекте всё нормально!
timofas
новенький
 
Сообщения: 20
Зарегистрирован: 26.07.2013 14:55:40

Re: Не может найти модуль, хотя он есть

Сообщение Лекс Айрин » 01.09.2013 16:48:34

timofas, сравни настройки проектов. Возможно, где-то там косяк.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Не может найти модуль, хотя он есть

Сообщение timofas » 02.09.2013 14:17:27

на вид всё одинаково, линупса поломал совсем в результате.
да дело точно в настройках проекта или это лазаруса тошнит от моего быдлокода :)
timofas
новенький
 
Сообщения: 20
Зарегистрирован: 26.07.2013 14:55:40


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 234

Рейтинг@Mail.ru