Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для мобильных телефонов > Android

Android Разработка игр на платформе Android

Ответ
 
Опции темы
Старый 20.08.2012, 11:10   #1
Жека
Дэвелопер
 
Регистрация: 04.09.2005
Адрес: Красноярск
Сообщений: 1,376
Написано 491 полезных сообщений
(для 886 пользователей)
Проблемы с нативным код

Помогите разобраться.
Странная штука - Eclipse (juno) не может заинклудить файл limits.h, если он указан в виде #include <limits>, как это сделано в движке ocge (c3d engine).

**** Build of configuration Default for project helloworld ****

C:\android-ndk2\ndk-build.cmd all 
"Compile++ thumb : helloworld <= main.cpp

In file included from jni/../../../include/glm/ext.hpp:102:0,
                 from jni/../../../include/types.h:135,
                 from jni/../../../include/ocge.h:4,
                 from jni/main.cpp:5:
jni/../../../include/glm/./gtx/matrix_query.hpp:45:18: fatal error: limits: No such file or directory
compilation terminated.
make: *** [obj/local/armeabi/objs/helloworld/main.o] Error 1

**** Build Finished ****
При добавлении расширения <limits.h> инклудит нормально. Пришлось все вхождения подправить.
Может есть конфликт с разными версиями этого файла? Или есть что-то с таким именем?
У меня установлена RAD Studio, оттуда инклудить может, хотя в путях проекта указаны только пути к движку и к ндк. Ещё добавил путь к MinGW - не помогло.
Ещё вот с этим проблема:
#include <string> - решено добавлением .h
#include <cstdarg> - а вот это не решено, добавление .h не помогло, всё равно пишет "fatal error: cstdarg: No such file or directory".

Все эти заголовочные файлы - limits, string, cstdarg есть в инклудах ndk, mingw, rad studio.

wtf?
Миниатюры
Нажмите на изображение для увеличения
Название: ndk1.png
Просмотров: 1073
Размер:	32.8 Кб
ID:	17442  
(Offline)
 
Ответить с цитированием
Старый 20.08.2012, 18:10   #2
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: Проблемы с нативным код

stdarg.h
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Жека (21.08.2012)
Старый 20.08.2012, 20:18   #3
pozitiffcat
Мастер
 
Аватар для pozitiffcat
 
Регистрация: 09.05.2010
Адрес: Самара
Сообщений: 1,083
Написано 254 полезных сообщений
(для 533 пользователей)
Ответ: Проблемы с нативным код

А уверен что пути к НДК прописаны C:\android-ndk2\ ?
(Offline)
 
Ответить с цитированием
Старый 21.08.2012, 08:38   #4
Жека
Дэвелопер
 
Регистрация: 04.09.2005
Адрес: Красноярск
Сообщений: 1,376
Написано 491 полезных сообщений
(для 886 пользователей)
Ответ: Проблемы с нативным код

Посоны, я проиграл.
Заменил
#include <cstdarg>
на
#include <stdarg.h> - сработало
И дальше беда:
In file included from jni/../../../include/ocge.h:6:0,
                 from jni/main.cpp:5:
jni/../../../include/IString.h:4:20: fatal error: iostream: No such file or directory
iostream - это уже слишком.
Блин, я чё-то не так делаю.

При наведении на строку с инклудом и щелчке мышью ничего не происходит. Я пошёл дальше, нашёл где лежит файлик iostream, это оказалась папка E:\dev\MinGW\lib\gcc\mingw32\4.6.2\include\c++, добавил её в пути проекта, теперь ctrl+лкм открывает файл. Но при компиляции та же ошибка - файл не найден.
Причём при добавлении нового пути с инклудами в проект эклипс предлагает проиндексировать папку, я соглашаюсь.

Ещё что интересно - в прошлую пятницу я нормально компильнул этот проект, я тогда ещё не знал про настройку "с/с++ build" в эклипсе, и потому на ошибку "ndk-build.cmd не найден по адресу C:\android-ndk\ndk-build.cmd" я просто скопировал папку с ндк на диск С. путь в системной переменной прописал.
Теперь думаю - не приснилось ли мне это всё?
Возможно в настройках ещё что-то надо указать, хз что.

Почему эклипс не находит заголовочный файл, который лежит в подкаталоге, указанном в путях проекта?

Пути к сдк и ндк прописаны в системной переменной Path.

Использую Eclipse Classic 4.2.

Продолжаю вникать в книжку Android NDK Beginner's Guide
(Offline)
 
Ответить с цитированием
Старый 21.08.2012, 09:00   #5
pozitiffcat
Мастер
 
Аватар для pozitiffcat
 
Регистрация: 09.05.2010
Адрес: Самара
Сообщений: 1,083
Написано 254 полезных сообщений
(для 533 пользователей)
Ответ: Проблемы с нативным код

все инклуды брать из NDK!!!
+ ко всему, что бы можно было юзать stl добавить файлик Application.mk в каталог jni твоего проекта и в нем написать
APP_STL := stlport_static
APP_ABI := armeabi armeabi-v7a
APP_OPTIM := release
LOCAL_ARM_MODE := thumb
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Жека (21.08.2012)
Старый 21.08.2012, 10:01   #6
Жека
Дэвелопер
 
Регистрация: 04.09.2005
Адрес: Красноярск
Сообщений: 1,376
Написано 491 полезных сообщений
(для 886 пользователей)
Ответ: Проблемы с нативным код

Сообщение от pozitiffcat Посмотреть сообщение
все инклуды брать из NDK!!!
Угу, я от безысходности дурью маялся с добавлением отовсюду.
+ ко всему, что бы можно было юзать stl добавить файлик Application.mk в каталог jni твоего проекта и в нем написать
APP_STL := stlport_static
APP_ABI := armeabi armeabi-v7a
APP_OPTIM := release
LOCAL_ARM_MODE := thumb
Я веду речь о демке твоего движка под андроид. Там вот что в файле Application.mk:
LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE    := helloworld
### Add all source file names to be included in lib separated by a whitespace
LOCAL_SRC_FILES := main.cpp
LOCAL_CPPFLAGS += -I./
LOCAL_CPPFLAGS += -D _ANDROID

LOCAL_LDLIBS += -L$(LOCAL_PATH)/../libs/armeabi/
LOCAL_CPPFLAGS += -IC:/android-ndk/sources/cxx-stl/stlport/stlport
LOCAL_LDLIBS += -locgeAndroid

include $(BUILD_SHARED_LIBRARY)
Вот оно - абсолютный путь к твоей ндк! Я такую же папку из своей ндк в пути проекта добавлял - не помогало (я нуб, оказывается в таких делах).

Вроде теперь дело за малым - компилит, но не может найти либу ocgeAndroid:
"E:\\dev\\android-ndk\\ndk-build.cmd" all 
SharedLibrary  : libhelloworld.so

e:/dev/android-ndk/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/../lib/gcc/arm-linux-androideabi/4.6.x-google/../../../../arm-linux-androideabi/bin/ld.exe: cannot find -locgeAndroid
collect2: ld returned 1 exit status
make: *** [obj/local/armeabi/libhelloworld.so] Error 1
Я не знаю куда её скинуть. Если в папку libs, то перед компиляцией оттуда всё удаляется.
(Offline)
 
Ответить с цитированием
Старый 21.08.2012, 16:42   #7
pozitiffcat
Мастер
 
Аватар для pozitiffcat
 
Регистрация: 09.05.2010
Адрес: Самара
Сообщений: 1,083
Написано 254 полезных сообщений
(для 533 пользователей)
Ответ: Проблемы с нативным код

А что разве Мастер проектов мой не работает?
LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE    := helloworld
### Add all source file names to be included in lib separated by a whitespace
LOCAL_SRC_FILES := main.cpp
LOCAL_CPPFLAGS += -I./
LOCAL_CPPFLAGS += -D _ANDROID

LOCAL_LDLIBS += -L$(LOCAL_PATH)/../libs/armeabi/
LOCAL_CPPFLAGS += -IC:/android-ndk/sources/cxx-stl/stlport/stlport
LOCAL_LDLIBS += -locgeAndroid

include $(BUILD_SHARED_LIBRARY)
этот твой код не в application.mk а в android.mk должен быть это 2 разных файла

это я делаю для подключения библиотеки
LOCAL_LDLIBS += -L$(LOCAL_PATH)/../libs/armeabi/
LOCAL_LDLIBS += -locgeAndroid
(Offline)
 
Ответить с цитированием
Старый 21.08.2012, 16:50   #8
Жека
Дэвелопер
 
Регистрация: 04.09.2005
Адрес: Красноярск
Сообщений: 1,376
Написано 491 полезных сообщений
(для 886 пользователей)
Ответ: Проблемы с нативным код

Точно разные файлы, я не обратил внимания.
Мастер не работает, хочет .net 4.0.3 - видимо это 4й с сервис-паком, я установил просто 4й - не заработало и я забил.
У тебя в структуре каталогов в мастере установки обе либы лежат в папке libs, но удаляются же они оттуда, как этого избежать?
(Offline)
 
Ответить с цитированием
Старый 21.08.2012, 19:05   #9
pozitiffcat
Мастер
 
Аватар для pozitiffcat
 
Регистрация: 09.05.2010
Адрес: Самара
Сообщений: 1,083
Написано 254 полезных сообщений
(для 533 пользователей)
Ответ: Проблемы с нативным код

они не там должны лежать, это для мастера они там лежат, попробуй фреймворк устаови
(Offline)
 
Ответить с цитированием
Старый 23.08.2012, 08:51   #10
Жека
Дэвелопер
 
Регистрация: 04.09.2005
Адрес: Красноярск
Сообщений: 1,376
Написано 491 полезных сообщений
(для 886 пользователей)
Ответ: Проблемы с нативным код

Не смог найти установщик .net 4.0.30319, который требуется. Нашёл только, что это обновление, которое ставит либо винда сама либо msvs 2010, студии у меня нет, винда не установила.
У меня вин 7 х64.

Кстати, разве нельзя для .net приложений компильнуть так, чтоб всё нужное было в ехе-шнике? Пусть он получится мег-два-больше, зато не нужно париться.
(Offline)
 
Ответить с цитированием
Старый 23.08.2012, 11:24   #11
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: Проблемы с нативным код

Кстати, разве нельзя для .net приложений компильнуть так, чтоб всё нужное было в ехе-шнике? Пусть он получится мег-два-больше, зато не нужно париться.
нет. но можно было бы использовать фремворк 2. который есть уже наверное везде. или вообще сделать без фреймворка на дельфи. или сделать в виде коммандной строки на плюсах.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
pozitiffcat (23.08.2012)
Старый 23.08.2012, 11:45   #12
Жека
Дэвелопер
 
Регистрация: 04.09.2005
Адрес: Красноярск
Сообщений: 1,376
Написано 491 полезных сообщений
(для 886 пользователей)
Ответ: Проблемы с нативным код

Или .bat-ничег вообще.
(Offline)
 
Ответить с цитированием
Старый 23.08.2012, 22:40   #13
pozitiffcat
Мастер
 
Аватар для pozitiffcat
 
Регистрация: 09.05.2010
Адрес: Самара
Сообщений: 1,083
Написано 254 полезных сообщений
(для 533 пользователей)
Ответ: Проблемы с нативным код

Да будет тебе счастье, замени exe-шник
Вложения
Тип файла: exe eclipseWizard.exe (18.5 Кб, 794 просмотров)
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Жека (24.08.2012)
Старый 24.08.2012, 09:13   #14
Жека
Дэвелопер
 
Регистрация: 04.09.2005
Адрес: Красноярск
Сообщений: 1,376
Написано 491 полезных сообщений
(для 886 пользователей)
Ответ: Проблемы с нативным код

Спасибо, работает!
Но по-прежнему проблема - в итоговый apk не инклудится либа ocgeAndroid, хз почему.
Создал проект с помощью мастера, скомпилил, в папке \libs\armeabi\ появился файл libocge_new.so, и установился в apk, а вот файл \libs\armeabi-v7a\libocgeAndroid.so удалился перед компиляцией, его в эту папку мастер скопировал.
(Offline)
 
Ответить с цитированием
Старый 25.08.2012, 16:39   #15
pozitiffcat
Мастер
 
Аватар для pozitiffcat
 
Регистрация: 09.05.2010
Адрес: Самара
Сообщений: 1,083
Написано 254 полезных сообщений
(для 533 пользователей)
Ответ: Проблемы с нативным код

вообще мастер для eclipse indigo а у тебя juno, может из-за этого, у меня ниче не удаляется!
Я настраиваю проект в своем мастере, потом выбираю папку куда сохраниь проект (save). Потом делаю в eclipse import этого проекта, запускаю сразу и он работает. Ничего больше настраивать не надо.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 04:31.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com