Включение разрешения символов C ++ 11 в Eclipse Juno ADT

Я использую Eclipse Juno с плагином ADT (Android Developer Tools), загруженным с https://dl-ssl.google.com/android/eclipse/.

Я создал проект приложения для Android с включенной поддержкой Native (щелкните правой кнопкой мыши проект → «Инструменты Android» → «Добавить собственную поддержку»).

Несмотря на ориентацию на C ++ 11 в моем Application.mk а также Android.mk файлы, Eclipse не может разрешить символы, такие как станд :: нить или же станд :: unique_ptr, но когда я строю проект, он хорошо компилируется: единственная проблема — разрешение символов C ++ 11.

Как я могу заставить Eclipse правильно распознавать символы C ++ 2011?

0

Решение

Если ваш Eclipse Juno с плагином ADT может скомпилировать код C ++ 11, но не может разрешить символы C ++ 11, вот процедура:

  1. Открыть свой .cproject файл в текстовом редакторе.

  2. Поиск по следующей строке (где XXXXXXXXX — случайное число):

    <tool id="com.android.gcc.compiler.XXXXXXXXX" name="Android GCC Compiler" superClass="com.android.gcc.compiler">
    
  3. Добавьте в него следующее:

    <option id="com.android.gcc.compiler.option.preprocessor.def.768340103" superClass="com.android.gcc.compiler.option.preprocessor.def" valueType="definedSymbols">
    <listOptionValue builtIn="true" value="__cplusplus=201103L"/>
    <listOptionValue builtIn="false" value="__cplusplus=201103L"/>
    <listOptionValue builtIn="true" value="__GXX_EXPERIMENTAL_CXX0X__"/>
    <listOptionValue builtIn="false" value="__GXX_EXPERIMENTAL_CXX0X__"/>
    </option>
    

    Вы должны иметь что-то вроде этого (где ГГГГГГГГ также является случайным числом):

    <tool id="com.android.gcc.compiler.XXXXXXXXX" name="Android GCC Compiler" superClass="com.android.gcc.compiler">
    <option id="com.android.gcc.compiler.option.preprocessor.def.768340103" superClass="com.android.gcc.compiler.option.preprocessor.def" valueType="definedSymbols">
    <listOptionValue builtIn="true" value="__cplusplus=201103L"/>
    <listOptionValue builtIn="false" value="__cplusplus=201103L"/>
    <listOptionValue builtIn="true" value="__GXX_EXPERIMENTAL_CXX0X__"/>
    <listOptionValue builtIn="false" value="__GXX_EXPERIMENTAL_CXX0X__"/>
    </option>
    <inputType id="com.android.gcc.inputType.YYYYYYYYYY" superClass="com.android.gcc.inputType"/>
    </tool>
    
  4. Сохранить модификации, запустить снова затмение и если символы C ++ 11 все еще не разрешены перестроить свой индекс (щелкните правой кнопкой мыши по проекту → «Индекс» → «Перестроить»).


Поскольку вкладка «Символы» не была видна в опциях C / C ++ проекта, я был вынужден добавить эти строки вручную в .cproject файл для того, чтобы установить значение __cplusplus в 201103L,

Я не знаю точно, как работают файлы .cproject, поэтому, возможно, есть лучший способ сделать это. Я видел, как некоторые парни меняли параметры набора инструментов проекта, чтобы сделать вкладку «Символы» видимой (здесь Android NDK build, метод не может быть решен и здесь Настройка C ++ 11 (std :: thread) для NDK с помощью ADT / Eclipse).

2

Другие решения


По вопросам рекламы [email protected]