
|
redTractor
Newbies Posts: 1 Joined: Mar 24th, 2017 |
compiler error: vector: No such file or directory |
Print Post |
|
I am attempting to build a project using the std::vector library. When compiling I get the following error: fatal error: vector: No such file or directory I have tried compiling with Deep Search turned off and on, there is no difference in the result. The project includes other library’s which are located in the «Arduinolibraries» folder, and those compile just fine. It seems like there is an issue finding libraries located in the directory: C:Program Files (x86)Microsoft Visual Studio 12.0VCinclude (which is where all of the standard C libraries are located) I modified my Configuration Properties for the linker and added the VS include directory to the «Additional Library Directories» search path (see attachment). Still no luck… Any input or recommendations would be greatly appreciated. Thanks, |
||
|
« Last Edit: Mar 24th, 2017 at 9:47pm by redTractor » |
||
|
Please Register or Login to the Forum to see File Attachments |
||
|
|
|
Tim@Visual Micro Administrator Posts: 11684 Joined: Apr 10th, 2010 |
Re: compiler error: vector: No such file or directory |
Print Post |
|
Hi, That isn’t how arduino works. It can be confusing with the vs intellisense which shows standard windows intellisense along with arduino. It’s possible to switch that off in the paths «include» paths dialog. However you can not change the intellisense paths themselves because visual micro has to automatically updated them with lib and hardware paths etc. (depending on what the code uses and what board/architecture is set) There is actually no need to ever set any paths for arduino and you also can not set any paths in the arduino ide. The arduino has very little memory compared to a windows machine therefore you will find a cut down version of c++ as documented on the arduino.cc and applicable gcc web sites. If you switch on vmicro>compiler>verbose, after a build you will see where sources are compiled from and will see there is no mention of any windows paths in the -I compiler includes. Sorry can be of more help. |
||
|
WWW
|
Когда я пытаюсь включить любой вектор С++, такой как вектор, в свой проект Android NDK (используя NDK r5b, последний), я получаю сообщение об ошибке, подобное следующему…
Compile++ thumb : test-libstl <= test-libstl.cpp
/Users/nitrex88/Desktop/Programming/EclipseProjects/STLTest/jni/test-libstl.cpp:3:18: error: vector: No such file or directory
Другие люди, которые сообщили об этом в Интернете, заявили об успехе, добавив
APP_STL := stlport_static
в файл Application.mk. Я сделал это, а также попробовал любую другую возможную ценность для APP_STL. Я очистил проект, запустил ndk-build clean, удалил папки obj и libs, и все же, когда компилирую его, он не может найти векторный класс. Я работаю над этим уже несколько недель (так как вышел NDK r5), и я был бы очень признателен, если бы у кого-то были какие-то советы. Спасибо!
04 фев. 2011, в 02:17
Поделиться
Источник
7 ответов
Это возможно. Вот несколько шагов:
В $PROJECT_DIR/jni/Application.mk:
APP_STL := stlport_static
Я попытался использовать stlport_shared, но не повезло. То же самое с libstdС++.
В $PROJECT_DIR/jni/Android.mk:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := hello-jni
LOCAL_SRC_FILES := hello-jni.cpp
LOCAL_LDLIBS := -llog
include $(BUILD_SHARED_LIBRARY)
Ничего особенного здесь, но убедитесь, что ваши файлы .cpp.
В $PROJECT_DIR/jni/hello-jni.cpp:
#include <string.h>
#include <jni.h>
#include <android/log.h>
#include <iostream>
#include <vector>
#define LOG_TAG "hellojni"
#define LOGI(...) __android_log_print(ANDROID_LOG_INFO,LOG_TAG,__VA_ARGS__)
#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR,LOG_TAG,__VA_ARGS__)
#ifdef __cplusplus
extern "C" {
#endif
// Comments omitted.
void
Java_com_example_hellojni_HelloJni_stringFromJNI( JNIEnv* env,
jobject thiz )
{
std::vector<std::string> vec;
// Go ahead and do some stuff with this vector of strings now.
}
#ifdef __cplusplus
}
#endif
Единственное, что меня укусил, было #ifdef __cplusplus.
Смотрите каталоги.
Чтобы скомпилировать, используйте ndk-build clean && ndk-build.
Sebastian Roth
08 фев. 2011, в 10:10
Поделиться
Если вы используете Android-студию, и вы все еще видите сообщение «error: vector: Нет такого файла или каталога» (или другие связанные с stl ошибки) при компиляции с помощью ndk, тогда это может вам помочь.
В своем проекте откройте файл build.gradle модуля (не ваш проект build.grade, а тот, который для вашего модуля), и добавьте stl stlport_shared в элемент ndk в defaultConfig.
Например,
android {
compileSdkVersion 21
buildToolsVersion "21.1.2"
defaultConfig {
applicationId "com.domain.app"
minSdkVersion 15
targetSdkVersion 21
versionCode 1
versionName "1.0"
ndk {
moduleName "myModuleName"
stl "stlport_shared"
}
}
}
rlcoder
23 март 2015, в 07:10
Поделиться
Я использую Android Studio, и по состоянию на 19 января 2016 года это помогло мне. (Это похоже на то, что меняется каждый год или около того)
Перейти к: app → Gradle Скрипты → build.gradle(Module: app)
Затем в модели {… android.ndk {… и добавьте строку: stl = «gnustl_shared»
Вот так:
model {
...
android.ndk {
moduleName = "gl2jni"
cppFlags.add("-Werror")
ldLibs.addAll(["log", "GLESv2"])
stl = "gnustl_shared" // <-- this is the line that I added
}
...
}
kynnysmatto
19 янв. 2016, в 00:14
Поделиться
Даже Себастьян дал хороший ответ еще 3 года назад, я все же хотел бы поделиться новым опытом здесь, если вы столкнетесь с той же проблемой, что и я, в новой версии ndk.
У меня есть ошибка компиляции, например:
fatal error: map: No such file or directory
fatal error: vector: No such file or directory
Моей средой является android-ndk-r9d и adt-bundle-linux-x86_64-20140702.
Я добавляю файл Application.mk в одну и ту же папку jni и вставляю одну (и только одну) строку:
APP_STL := stlport_static
Но, к сожалению, это не решает мою проблему!
Я должен добавить эти 3 строки в Android.mk, чтобы решить эту проблему:
ifndef NDK_ROOT
include external/stlport/libstlport.mk
endif
И я увидел хороший обмен из здесь, в котором говорится: «stlport_shared» является предпочтительным». Возможно, это лучшее решение для использования stlport в качестве общей библиотеки вместо статического. Просто добавьте следующие строки в Android.mk, а затем нет необходимости добавлять файл Application.mk.
ifndef NDK_ROOT
include external/stlport/libstlport.mk
endif
LOCAL_SHARED_LIBRARIES += libstlport
Надеюсь, что это будет полезно.
gary
18 авг. 2014, в 12:01
Поделиться
Позвольте мне немного добавить к ответ Себастьяна Рота.
Ваш проект может быть скомпилирован с помощью ndk-build в командной строке после добавления кода, опубликованного Sebastian. Но для меня были синтаксические ошибки в Eclipse, и у меня не было завершения кода.
Обратите внимание, что ваш проект должен быть преобразован в проект C/С++.
Как преобразовать проект C/С++
Чтобы устранить эту проблему, щелкните правой кнопкой мыши на своем проекте, выберите «Свойства»
Выберите C/С++ Общие → Контуры и символы и включите каталоги ${ANDROID_NDK}/sources/cxx-stl/stlport/stlport для включения
Нажмите «Да», когда появится диалоговое окно.
До
После
Обновление # 1
GNU C. Добавить каталоги, перестроить. Не будет ошибок в исходных файлах C
GNU С++. Добавить каталоги, перестроить. Ошибок в исходных файлах CPP не будет.
Maksim Dmitriev
13 дек. 2013, в 13:04
Поделиться
Если вы используете ndk r10c или новее, просто добавьте APP_STL = С++ _ static в Application.mk
clark.li
08 янв. 2015, в 05:13
Поделиться
Ещё вопросы
- 1SVM регрессия быстрее в Python
- 0Как воспроизведение метафайлов работает в GDI
- 1MVC мешают обновлять определенные поля
- 0Как кодировать URL в AngularJs
- 1модульное тестирование атрибутов валидатора dataannotations
- 1getRingerMode () всегда возвращает значение 0
- 1Заставить класс иметь конструктор
- 1Форматирование XML для отображения в TextView?
- 0Проблема цикла Chart.js, PHP и JSON
- 1Использование PhoneGap для мобильного приложения для редактирования видео
- 1Проблемы с xPage NotesContext getDatabase ACL
- 0Доступ к значениям содержимого $ при создании темы Drupal
- 1Task.WhenAll — Когда использовать этот
- 1(jqGrid) Ошибка при поиске номера строки, по которой щелкнули
- 0проверка имени пользователя и пароля
- 0Как поставить рамку вокруг всей клетки?
- 1манипулирование яркостью в цветовом пространстве YUV
- 1Как присвоить значения массиву numpy как функцию индекса?
- 1Извлечение индексов столбцов, где dtype это «объект» в Pandas
- 1Struts2 возвращает json, если аутентификация в перехватчике не удалась
- 1Добавление TextViews в TableLayout «наращиваемый»
- 0доступ к коллекции внутри json объекта углового
- 1Получение только целых чисел при делении кадра данных панд на ряд панд
- 0C ++ — доступ к значениям в динамических массивах
- 0Установка опции выбора из .css (‘font-family’)
- 0Показывать пользователю только первые несколько секунд видео для незарегистрированных пользователей
- 1Привязать селектор длинного списка к результату метода POST
- 0Перегрузка оператора C ++ со ссылкой на значение
- 1Hanning (by Hann) окно
- 0Получить данные из объекта $ .ajax
- 0XPath Wildcards для HTML
- 1цитирование отдельных символов (слов) в строке на Java-скрипте
- 0Как лучше организовать C ++ Socket Server?
- 0JQuery Ajax успеха не будет стрелять вместо того, чтобы завершить работу события
- 0опционально с элементом списка ионов
- 0ошибка множественного определения при связывании проекта C ++
- 0Правильный переход к элементам в одном блоке
- 1Невозможно получить доступ к моему логическому списку
- 1Керас пользовательская функция потери вызова скрытого слоя плотных операций
- 1Войти в Jabber-сеть
- 0Проблема конфигурации opencv 2.4.3 в Visual Studio 2010
- 1отправить значения TextBox из FormB в DataGridView в FormA
- 0CKEditor JQuery не обновляет значения
- 0Разбор ответа JSON в jQuery только для первого значения
- 0php mysql — вставить один запрос из цикла while
- 1Как получить поле EditText, предварительно заполненное после нажатия кнопки «Назад»
- 0Как вводить данные SQL, только если ввод не пустой
- 0Наведите курсор на один элемент div, измените цвет другого, но затемните все элементы div, которые не отображаются
- 0PhoneGap / JQueryMobile приложение сборки теряет стиль
- 1Как запустить функцию в обратном вызове fs.stat

| View previous topic :: View next topic | |||||||||||||
| Author | Message | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| urcindalo l33t
Joined: 08 Feb 2005 |
|
||||||||||||
| Back to top |
|
||||||||||||
| megabaks Apprentice ![]() Joined: 22 Jan 2012 |
|
||||||||||||
| Back to top |
|
||||||||||||
| urcindalo l33t
Joined: 08 Feb 2005 |
|
||||||||||||
| Back to top |
|
||||||||||||
| leo.the_zoo Apprentice
Joined: 04 Jul 2005 |
|
||||||||||||
| Back to top |
|
||||||||||||
| urcindalo l33t
Joined: 08 Feb 2005 |
|
||||||||||||
| Back to top |
|
||||||||||||
| leo.the_zoo Apprentice
Joined: 04 Jul 2005 |
|
||||||||||||
| Back to top |
|
||||||||||||
| urcindalo l33t
Joined: 08 Feb 2005 |
|
||||||||||||
| Back to top |
|
||||||||||||
| leo.the_zoo Apprentice
Joined: 04 Jul 2005 |
|
||||||||||||
| Back to top |
|
||||||||||||
| urcindalo l33t
Joined: 08 Feb 2005 |
|
||||||||||||
| Back to top |
|
||||||||||||
| rdlady n00b
Joined: 12 Aug 2013 |
|
||||||||||||
| Back to top |
|
||||||||||||
| Hu Moderator
Joined: 06 Mar 2007 |
|
||||||||||||
| Back to top |
|
||||||||||||
|
|
You cannot post new topics in this forum |
фатальная ошибка: вектор: нет такого файла или каталога
У меня есть проект Android, состоящий из большого количества собственного кода на C++. Однако я не могу собрать свою библиотеку, так как она не может найти заголовочный файл vector.h. В чем может быть проблема ? Образец моих включений почти на всех страницах.
#include <jni.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <vector>
Компилятор может найти все остальные заголовочные файлы, кроме vector.h, в каждом файле. Любые предложения о том, где я иду не так?
ПРИМЕЧАНИЕ. Имена файлов заканчиваются на .cpp а я уже пробовал #include <vector.h> , #include "vector.h"
Благодаря !
Проблема была окончательно решена путем создания Application.mk в папке проекта JNI и добавления к нему следующего: —
APP_STL := stlport_static
Подробнее см. это вопрос по SO
ответ дан 23 мая ’17, 12:05
Не тот ответ, который вы ищете? Просмотрите другие вопросы с метками
build
android-ndk
compiler-errors
makefile
or задайте свой вопрос.




IP Logged




