2016-02-02 6 views
0
android.ndk { 
     moduleName = "hello-jni" 
     stl = "stlport_static" 
     CFlags.add("-std=iso9899:2011") // I have also used "-std=c11" 
     ldLibs.addAll(["android", "log"]) 
    } 

Я все еще не вижу memset_s в jni C-коде. Это говорит о неопределенной ссылке.Как использовать memset_s в Android NDK?

В моем коде я гр также включен string.h, stdlib.h и stdio.h а также

#define STDC_WANT_LIB_EXT1 1 

До сих пор не может избавиться от ошибки неопределенной ссылки ошибки.

Если я добавляю флаг Allow_Undefined_symbols, он компилируется, но когда я вызываю функцию memset_s, он сработает.

Вопросы я хотел бы задать следующие:

1) В какой из цепей инструмента Android NDK мы можем получить С11 memset_s апи?

2) Другой вопрос, который у меня есть, - как мы можем изменить цепочку инструментов по умолчанию для андроида в последней студией Android с экспериментальной градицией альфа5?

ответ

1

Мне не удалось найти цепочку инструментов, поддерживающую C11 для NDK. Таким образом, я использовал совместимое решение для c99 по следующей ссылке:

https://www.securecoding.cert.org/confluence/display/c/MSC06-C.+Beware+of+compiler+optimizations

Что вы можете настроить для собственных целей. Я добавляю это решение для любого нуждающегося.

2

Функционально «Приложение К» в стандарте С11 является необязательным. Он не реализован во многих библиотеках C.

Вы можете проверить соответствие с Приложением K с помощью макроса __STDC_LIB_EXT1__.

+0

Спасибо за ответ @Jens, как я уже упомянул в вопросе, я уже пробовал макрос, и я знаю, что он является частью C11, поэтому я уже добавил тег. Возможно, я спросил неправильно, позвольте мне перефразировать это. В какой из цепей инструментов Android NDK можно получить C11 memset_s api? Другой вопрос, который у меня есть, заключается в том, как изменить цепочку инструментов по умолчанию для Android в последней студией Android с экспериментальной оценкой альфа5? – deepu

+1

Меня это удивило бы, если бы оно было. Я не слышал о реализации библиотеки C в мире Linux, которая реализует Приложение K, и того, у кого есть планы на это. –

 Смежные вопросы

  • Нет связанных вопросов^_^