Кросс-компиляция для WinCe_x86 |
Здравствуйте, гость ( Вход | Регистрация )
Кросс-компиляция для WinCe_x86 |
tp4 |
3.5.2011, 10:19
Сообщение
#1
|
Студент Группа: Участник Сообщений: 32 Регистрация: 1.10.2009 Пользователь №: 1128 Спасибо сказали: 1 раз(а) Репутация: 0 |
Здравствуйте, господа.
Цель: собирать Qt-приложения для Win7_x86 и для WinCe_x86. Разработка ведется в QtCreator'е в Win7. Qt 4.7. MS VS 2008. Что сделал: 1. Поставил SDK для wince. 2. Собрал Qt для платформы wince_x86 3. Поставил Qt-VS-addon Итог: Из студии все прекрасно компилится и в дебаге и в релизе. Есть желание кросскомпилить из Creator'а. 1. В настройках криэйтора указал путь к qmake. Сразу определился студийный компилятор. 2. Создал простой проект: .pro QT += core QT -= gui TARGET = test_ce_cons CONFIG += console CONFIG -= app_bundle TEMPLATE = app SOURCES += main.cpp main.cpp #include <QtCore/QCoreApplication> #include <QDebug> int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); qDebug()<<"asd"; return a.exec(); } 4. В "проектах" выбираю wince'шный профиль. Компилю в дебаге - все норм. 5. При компиляции в релизе начал требовать сначала stddef.h, затем winbase.h. Все это вылечилось доп. строками в pro-файле: INCLUDEPATH += "c:\Program Files\Microsoft Visual Studio 9.0\VC\include\" INCLUDEPATH += "c:\Program Files\Windows CE Tools\wce500\STANDARDSDK_500\Include\x86\" Далее говорит: LINK : fatal error LNK1181: cannot open input file 'corelibc.lib' Ну я ему говорю: LIBS += "c:\Program Files\Windows CE Tools\wce500\STANDARDSDK_500\Lib\x86\corelibc.lib" Не помогло. Та же ошибка линковки. Итак, 1. Как все же скомпилить в релизе через криэйтор? Что я делаю нитак? 2. Почему при компиляции в дебаге не ругается на stddef.h, winbase.h? Заранее спасибо! |
|
|
ufna |
4.5.2011, 14:01
Сообщение
#2
|
Активный участник Группа: Участник Сообщений: 362 Регистрация: 24.5.2008 Из: Курган/СПб Пользователь №: 182 Спасибо сказали: 29 раз(а) Репутация: 5 |
LIBS += -LC:\Program Files\Windows CE Tools\wce500\STANDARDSDK_500\Lib\x86\ corelibc
последний параметр только не помню как написать |
|
|
tp4 |
4.5.2011, 17:12
Сообщение
#3
|
Студент Группа: Участник Сообщений: 32 Регистрация: 1.10.2009 Пользователь №: 1128 Спасибо сказали: 1 раз(а) Репутация: 0 |
Спасибо.
Действительно, к своему стыду просто криво записал пути к библиотекам. Вот так нужно было: LIBS += -L"c:\Program Files\Windows CE Tools\wce500\STANDARDSDK_500\Lib\x86\" LIBS += -L"c:\Program Files\Microsoft Visual Studio 9.0\VC\lib\" Но к сожалению этого оказалось недостаточно. Теперь вот такая ошибка появляется: Цитата LINK : fatal error LNK1104: cannot open file 'LIBC.lib' На моей машине такой библиотеки не оказалось. Гугл говорит, что libc.lib - это старая однопотоковая версия libc и что теперь используются только libcmt.lib. Подскажите пожалуйста, как побороть эту ошибку? |
|
|
ufna |
4.5.2011, 17:34
Сообщение
#4
|
Активный участник Группа: Участник Сообщений: 362 Регистрация: 24.5.2008 Из: Курган/СПб Пользователь №: 182 Спасибо сказали: 29 раз(а) Репутация: 5 |
хочет ее, скачай да выдай не обязательно чтобы она была. А там по результату
|
|
|
tp4 |
5.5.2011, 12:58
Сообщение
#5
|
Студент Группа: Участник Сообщений: 32 Регистрация: 1.10.2009 Пользователь №: 1128 Спасибо сказали: 1 раз(а) Репутация: 0 |
Спасибо, ufna.
Заработало. Подсунул ему libcmt.lib, переименованную в libc.lib, как советовали на каком-то форуме. Насколько это правомерно? Мне потом что-нибудь будет за такой dirty trick? |
|
|
ufna |
5.5.2011, 14:52
Сообщение
#6
|
Активный участник Группа: Участник Сообщений: 362 Регистрация: 24.5.2008 Из: Курган/СПб Пользователь №: 182 Спасибо сказали: 29 раз(а) Репутация: 5 |
Вот когда баги из ниоткуда полезут, тогда и будешь думать. А так - врядли что-то случится, если уж слинковалось и работает, то можно вздохнуть спокойно.
|
|
|
kuzulis |
21.8.2011, 19:02
Сообщение
#7
|
Активный участник Группа: Участник Сообщений: 393 Регистрация: 29.6.2009 Пользователь №: 862 Спасибо сказали: 36 раз(а) Репутация: 7 |
Доброго времени, подниму тему!
Я тоже озадачился аналогичной проблемой. Что я делал: 1. Установил VS2008 2. Установил WinCE standart SDK 3. Распаковал исходники Qt 4.7.1 в Цитата c:\qt\src-4.7.1 4. Создал директорию для сборки: Цитата c:\qt\build-vs2008-wince-4.7.1 5. В этой директории создал два *bat файлика: cfg-qt471.bat
и env-qt471.bat
6. Запустил консоль 2008 студии и в ней выполнил файл cfg-qt471.bat 7. Далее, после удачного конфигурирования выполнил env-qt471.bat 8. Далее, выполнил nmake 9. Далее, в настройках QtCreator 2.2.1->"Параметры"->"Qt4"->"Особые" название профиля: msvc2008-wince-4.7.1 и указал путь к собраному qmake: c:\qt\build-vs2008-wince-4.7.1\bin\qmake.exe (см. рис 1) Но! Теперь при попытке открыть любой файл проекта *.pro, QtCreator не предоставляет выбор моего профиля, хотя в QtCreator 2.2.1->"Параметры"->"Инструментарии" имеется запись об MSVC 2008 (см. рис 2) ----- Пробовал также установить Qt VS Addin v1.9 , но возникла проблема (см. http://www.forum.crossplatform.ru/index.ph...mp;#entry52479) Как быть? |
|
|
Текстовая версия | Сейчас: 29.11.2024, 8:32 |