При линковке обнаруживаются несуществующие ошибки.

Тема в разделе "LANGS.C", создана пользователем osrootd, 1 дек 2008.

  1. osrootd

    osrootd New Member

    Публикаций:
    0
    Регистрация:
    30 июл 2008
    Сообщения:
    1.086
    Что самое интересное, когда полностью очистишь проект от объектных файлов, то все работает ( линкуется ).
    Все классы (Form1, SettingsStorage) есть в наличии и компилируются нормально.

    То есть, собрал чистый проект - работает. Дописал что-то в исходники - не работает. Приходится все удалять и только после этого можно дойти до отладки.
    Это как то можно исправить?
     
  2. Y_Mur

    Y_Mur Active Member

    Публикаций:
    0
    Регистрация:
    6 сен 2006
    Сообщения:
    2.494
    А не пробовал build вместо compile? тогда он должен принудительно обновлять все объектники, а при compile имеет право сачковать если есть готовые, пусть даже уже не правильные ;)
     
  3. osrootd

    osrootd New Member

    Публикаций:
    0
    Регистрация:
    30 июл 2008
    Сообщения:
    1.086
    Я distclean уже пробывал.
    Он теперь main (argc, argv) найти не может. Совсем поехал...
    Короче, ввиду ограничения времени на разработку, стал создавать библиотеки.

    Вот на модуль с сессией - libsession.a
    Причем, я хотел в ту же либу впихнуть авторизацию - та же фигня, не обновляет. У меня теперь на каждую подпрограмму своя либа
    По-идиотски сделано, так не пишут, но это работает.
     
  4. wsd

    wsd New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2007
    Сообщения:
    2.824
    osrootd
    в принципе маке должна смотреть время исходника и время объектника.
    если в исходнике более свежее время - обновлять объектник ;)
    запость сюда макефайл.
     
  5. osrootd

    osrootd New Member

    Публикаций:
    0
    Регистрация:
    30 июл 2008
    Сообщения:
    1.086
    wsd
    Ниче не даст. Я вот аттач прилагаю. Там Makefile - общепроектный и Makefile.src - тот что в каталоге src
     
  6. wsd

    wsd New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2007
    Сообщения:
    2.824
    osrootd
    я куте(qmake) плохо знаю.
    но в обычных макефайлах чтобы не было глюков с версиями объектников пишут так
    Код (Text):
    1. client.o: client.cpp client.h
    2.     здесь идёт строка для компиляции
    после такой конструкции(от двоеточия до конца строки) стоят зависимости и
    если время этих зависимостей свежее объетника - то пересобирается :)
     
  7. osrootd

    osrootd New Member

    Публикаций:
    0
    Регистрация:
    30 июл 2008
    Сообщения:
    1.086
    Извините: а это как?

    AuthForm * f_auth = new AuthForm(rz);
    printf ("SYS_RZ1 = %d\n", f_auth->get_res);

    ***
    Там в классе:
    this->get_res=1;

    Эта вся конструкция выдаёт:

    SYS_RZ1=5?
     
  8. wsd

    wsd New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2007
    Сообщения:
    2.824
    osrootd
    отлаживай :)