Войти
AndroidФорумОбщее

Подключение внешних директорий

#0
16:30, 14 мая 2013

Здравствуйте! Возник вопрос относительно путей. Есть 2 директории:
D:/ProjectName
D:/LibraryName
В первой находится сам проект, во второй необходимые для него файлы библиотеки (.h, .cpp).

Вопрос следующий:
Можно ли в Android.mk как-то сообщить, что исходники библиотеки лежат не в jni, а в D:/LibraryName?


#1
16:39, 14 мая 2013

Да, пример (я указал путь на файлы проекта для Студии):

LOCAL_SRC_FILES := ..\..\..\Documents\Visual~1\FluidArkanoid\FluidArkanoid.cpp
LOCAL_SRC_FILES += ..\..\..\Documents\Visual~1\units\tbal.cpp
LOCAL_SRC_FILES += ..\..\..\Documents\Visual~1\units\graph.cpp
LOCAL_SRC_FILES += ..\..\..\Documents\Visual~1\units\font.cpp
LOCAL_SRC_FILES += ..\..\..\Documents\Visual~1\FluidArkanoid\engine.cpp
...
LOCAL_C_INCLUDES += C:\Users\TarasB\Documents\Visual~1\units

По-первых, в этом мудацком красноглазом говне, сделанном линуксовыми чертями, а не людьми, при указании пути нельзя использовать двоеточия, поэтому приходится указывать путь относительно, и лепить много ..\..\
Во-вторых, в этом мудацком красноглазом говне при указании пути до файлов с заголовками нельзя использовать возвраты наверх, поэтому путь указывается абсолютно.
В-третьих, в первой строке я (через :=) написал главный файл (по умолчанию в ней стоит jni\project_name.cpp)
В-четвёртых, в следующих строках я (через +=) перечислил все cpp-шники, которые используются в проекте.

#2
17:31, 14 мая 2013

Файл находится например так: d:/project/main.cpp
Пишу: LOCAL_SRC_FILES := ../project/main.cpp
В логе: make: *** No rule to make target jni/../project/main.cpp

#3
17:43, 14 мая 2013

Tiarwe
> Пишу: LOCAL_SRC_FILES := ../project/main.cpp

А папка jni у тебя в d:/jni разве? Не думаю. Где она точно?
Ты сделал только один возврат наверх, а надо несколько, посчитай сколько.

Мне вот пришлось сделать три, потому что изначально папка
TarasB\workspace\FluidArkanoid\jni\
после трёх возвратов стала TarasB\
а уже из неё я спускаюсь к рабочей папке проек4та Студии.

#4
22:18, 14 мая 2013

TarasB
>в этом мудацком красноглазом говне, сделанном линуксовыми чертями, а не людьми, при указании пути нельзя использовать двоеточия
А ты кавычки не пробовал использовать?

#5
23:07, 14 мая 2013

Я в линуксе сделал символическими ссылками. Т.е. реально исходники лежат в отдельной папке, а в jni/ лежит ссылка на эту папку, и компилятор думает, что исходники внутри. В NTFS вроде бы тоже символические ссылки поддерживаются, только не уверен, что они работают между дисками.

#6
14:12, 15 мая 2013

Вроде разобрался... Ещё вопрос, можно ли как-то запретить просматривать определенные файлы? Проект кроссплатформенный и есть в некоторых исходных файлах заголовки, к примеру, от directx

#7
14:17, 15 мая 2013

Tiarwe
> определенные файлы-хидеры?

Ну у меня был такой вопрос - некоторые библиотеки были нужны только при работе со студией.
Ну так я их засунул в отдельную папку, и добавил эту папку только для студии.

AndroidФорумОбщее

Тема в архиве.