2014-02-12 2 views
0

У меня есть родная общая библиотека (.so) в моем приложении, в которой я бы хотел запустить модульные тесты. В частности, есть несколько функций в моем .so, что я хотел бы напрямую позвонить из своих модульных тестов. Однако я не хочу, чтобы эти функции были видны в версии выпуска.Как настроить мою компиляцию Android.mk для экспорта всех символов по умолчанию только для отладочных сборников?

Способ, которым я в настоящее время планирую это сделать, заключается в удалении опции -fvisibility = hidden при компиляции при создании для отладки (NDK_DEBUG = 1). Однако я не могу понять, как это сделать из файла Android.mk.

Вот мой текущий Android.mk (немного упрощенным):

TARGET_PLATFORM := android-8 
LOCAL_PATH := $(call my-dir) 

include $(CLEAR_VARS) 
LOCAL_MODULE := nuke_launcher 
LOCAL_SRC_FILES := red_button.c abort_sequence.c 

ifdef NDK_DEBUG 
    LOCAL_CFLAGS := -fvisibility=default # <-- Doesn't work 
endif 

include $(BUILD_SHARED_LIBRARY) 

Спасибо!

ответ

2

по умолчанию (видно) по умолчанию; вы, вероятно, хотите установить LOCAL_CFLAGS += -fvisibility=hidden для не-отладочной сборки.

+0

Да! Вы правы, он должен быть включен по умолчанию. И действительно, я смотрю дальше по моему файлу Android.mk, и там я вижу -fvisibility = hidden. Неудивительно, что мой код не работал ... Спасибо! – hopia