Russian Qt Forum

Qt => Установка, сборка, отладка, тестирование => Тема начата: enola от Декабрь 14, 2006, 08:13



Название: Компиляция с Qt 4.2.0
Отправлено: enola от Декабрь 14, 2006, 08:13
Поставил данную версию с qt-vsintegration-1.2.0 при компиляции проекта, созданного мастером в VS2005, вылетает ошибка:
Цитировать
1>LINK : fatal error LNK1181: cannot open input file 'QtCored.lib'
что за ... ?
С 4.1.4 такого не наблюдалось.
Да еще приходится запускать VS2005 через ярлык в папке Qt - Visual Studio with Qt 4.2.0, можно как-нибудь сделать, чтоб без него работало?


Название: Компиляция с Qt 4.2.0
Отправлено: Racheengel от Декабрь 14, 2006, 09:44
нифига не понял...
можно поподробнее - как проект создается, что за ярлык и т.д.?


Название: Компиляция с Qt 4.2.0
Отправлено: enola от Декабрь 14, 2006, 10:39
По порядку:[list=1]
  • Запускаю Visual Studio 2005 через ярлык Пуск->Qt by Trolltech v4.2.0 (VS2005)->Visual Studio with Qt 4.2.0
  • Создаю проект Qt Application в Visual Studio 2005 через мастер. Все установки по умолчанию.
  • Пытаюсь его компилировать, выдает ошибку:
Цитировать
1>LINK : fatal error LNK1181: cannot open input file 'QtCored.lib'
[/list:o]
До этого стояла Qt 4.1.4 все было нормально.
Если просто запустить VS, то ругается на переменную QtDir.

Хочется:[list=1]
  • Запускать VS не через ярлык
  • Компильнуть пустой проект[/list:o]
     :D


Название: Компиляция с Qt 4.2.0
Отправлено: Dendy от Декабрь 14, 2006, 13:55
Наверное ляпьІ с путями. Сейчас угадаю - ярльІк создал интегратор. Я к примеру интегратором никогда не пользуюсь, без него гораздо проще. Проверь что именно запускает ярльІк, какие переменньІе окружения он ставит. Стоит ли в системе переменная QTDIR. Стоят ли в настройках проекта Linker->General->Additional Library Directories пути к папке с либами Qt. Добавлена ли либа QtCored.lib в список либ Linker->Input->Additional Dependencies. Проверь точно ли собрана Qt статически.


Название: Компиляция с Qt 4.2.0
Отправлено: enola от Декабрь 14, 2006, 14:01
разобрался, вот что нужно было ручками прописать в перемнных окружения:
Цитировать
set QTDIR=C:\Qt\4.2.0
set PATH=C:\Qt\4.2.0\bin;
set QMAKESPEC=win32-msvc2005

и все заработало, и зачем они так сделали?!
 :D


Название: Компиляция с Qt 4.2.0
Отправлено: Dendy от Декабрь 14, 2006, 14:20
Теорктически они сделали правильно. Ето чтобьІ при нескольких Qt в системе можно бьІло менять на лету с какой именно тебе нужно собрать программу, не переписьІвая настройки проекта. Наверняка в проекте пути записаньІ в виде:

Код:
$(QTDIR)\include\QtCore
...
$(QTDIR)\lib


Просто дебильная студия не может добавить переменную окружения как макрос в конфигурацию проекта. Куда смотрели разроботчики из M$??


Название: Компиляция с Qt 4.2.0
Отправлено: enola от Декабрь 14, 2006, 14:31
Цитата: "Dendy"
Наверняка в проекте пути записаньІ в виде:

Код:
$(QTDIR)\include\QtCore
...
$(QTDIR)\lib


именно.

Цитировать
Просто дебильная студия не может добавить переменную окружения как макрос в конфигурацию проекта. Куда смотрели разроботчики из M$??

ну я бы не стал так сразу.  :lol:


Название: Компиляция с Qt 4.2.0
Отправлено: Dendy от Декабрь 14, 2006, 14:57
Студия не должна зависеть от библиотек. Неужели каждьІй фреймворк должен дописьІвать свои линки с переменньІми окружения? Линк вьІзьІвает другой линк, а тот ещё что-то, и в конце концов студию. Все настройки проекта должньІ редактироваться из Студии, а не через костьІли типа переменньІх окружения. Не путайте с командной строкой. Когда макросьІ чисто студийньІх настроек можно изменить только через переменньІе окружения, ето назьІвается через ж.

Правильно могло бьІ бьІть так: есть корневая конфигурация проекта, а есть подконфигурации, в которьІх подправленьІ мелочи, например ОДНА переменная, указьІвающая какой фреймворк использовать.

Почему-то в том же XCode с етим проблем нет.


Название: Компиляция с Qt 4.2.0
Отправлено: enola от Декабрь 14, 2006, 17:16
В Ваших словах есть истина :)


Название: Компиляция с Qt 4.2.0
Отправлено: Angler225 от Декабрь 15, 2006, 14:02
У меня такая же тема... Входные условия те же.
1>Linking...
1>LINK : fatal error LNK1181: cannot open input file 'QtCored.lib'
Вот только пока её не решил. Все пути прописаны, но дело в том, что в директории c:/QT/4.2.0/lib нет файла QtCored.lib
Библиотека сконфигурирована статически, что не так, подскажите ?


Название: Компиляция с Qt 4.2.0
Отправлено: enola от Декабрь 15, 2006, 14:19
У меня тоже самое было; а этого файла у меня тоже нет, зато есть другой qtcored4.lib.
Сделал я вот что:[list=1]
  • Снес Qt 4.1.4 (эта версия у меня стояла)
  • Установил Qt 4.2.0
  • Вытащил из ярлыка (который для запуска студии в папке Qt):
Цитировать
set QTDIR=C:\Qt\4.2.0
set PATH=C:\Qt\4.2.0\bin;
set QMAKESPEC=win32-msvc2005

  • Установил переменные окружения через Мой компьютер->Свойства->Дополнительно->Переменные среды.
  • [/list:o]
    и все заработало  :D


Название: Компиляция с Qt 4.2.0
Отправлено: ElderOrb от Декабрь 15, 2006, 14:20
А остальные отладночные библиотеки есть? Может быть стоить пересобрать qt с ключами -static -debug-and-release ?


Название: Компиляция с Qt 4.2.0
Отправлено: Angler225 от Декабрь 15, 2006, 14:24
ok. попробую.
Решение где-то рядом. :)


Название: Компиляция с Qt 4.2.0
Отправлено: enola от Декабрь 15, 2006, 14:30
Цитата: "ElderOrb"
А остальные отладночные библиотеки есть? Может быть стоить пересобрать qt с ключами -static -debug-and-release ?

А разве нужно коммерческую пересобрать после установки, я почему-то думал, что все сразу должно работать?


Название: Компиляция с Qt 4.2.0
Отправлено: Angler225 от Декабрь 15, 2006, 18:10
По моему нужно, потому что по умолчанию у меня линковалась динамически.
Вот захотел сделать статически, и не может линкер найти эту библиотеку.
Пересобрал qt
   configure -static -debug -release
Потом с помощью
   qmake -project
cделал проект, затем в visual studio QT/Open Solution from .pro File сделал проект
для vs 2005 и попробовал его компильнуть, выдает уже
1>Linking...
1>LINK : fatal error LNK1181: cannot open input file 'C:\Qt\4.2.0\lib\QtGuid.lib'
проектик немного другой там только #include <QApplication>
Такое впечатление что не правильно ищет директорию с библиотеками.

добавлено спустя 2 часа 54 минуты:

 Поставил еще qt-win-commercial-4.1.4-vs2005.
Компилится... В Linker->Input->Additional Dependencies
сейчас  qtmaind.lib QtCored4.lib QtGuid4.lib , а было много другого...

Но вот только на другом компе должно работать без dll ?

добавлено спустя 1 минуту:

 Я имел в виду что работает и с 4.1.4 и 4.2.0