Я пытаюсь перенести следующий фрагмент кода C ++ на Android как часть работы NDK:
#include <fstream>
// ...
inline void trim(string & str, const string & delim = " \t\r\n")
{
string::size_type pos = str.find_last_not_of(delim);
if(pos == string::npos) str.erase(str.begin(), str.end());
else
{
str.erase(pos+1);
pos = str.find_first_not_of(delim);
if(pos != string::npos) str.erase(0, pos);
}
}
Я получаю следующее сообщение на str.erase(pos+1);
а также str.erase(0, pos)
:
Invalid arguments '
Candidates are:
std::basic_string<char,std::char_traits<char>,std::allocator<char>> & erase(?, ?)
__gnu_cxx::__normal_iterator<char *,std::basic_string<char,std::char_traits<char>,std::allocator<char>>> erase(__gnu_cxx::__normal_iterator<char *,std::basic_string<char,std::char_traits<char>,std::allocator<char>>>)
__gnu_cxx::__normal_iterator<char *,std::basic_string<char,std::char_traits<char>,std::allocator<char>>> erase(__gnu_cxx::__normal_iterator<char *,std::basic_string<char,std::char_traits<char>,std::allocator<char>>>, __gnu_cxx::__normal_iterator<char *,std::basic_string<char,std::char_traits<char>,std::allocator<char>>>)
'
Я попробовал то, что было предложено Вот но это не помогло. Вместо этого теперь я получаю новое сообщение для #include <fstream>
:
Unresolved inclusion: <fstream>
Что мне нужно сделать, чтобы решить эту проблему? Спасибо.
ОБНОВЛЕНИЕ: я пытаюсь добавить этот кусок кода в существующий код C ++ в проекте Android, который работал и работал нормально. Когда я применил изменение, указанное выше, я не только получил unresolved inclusion
для fstream я также получил кучу других ошибок. Например, для следующего блока сформируйте существующий код:
#include <jni.h>
#include <opencv2/core/core.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/features2d/features2d.hpp>
#include <vector>
Я тоже получаю Unresolved inclusion
ошибки. Так что все стало хуже.
Попробуйте добавить следующую строку в Application.mk
вашего проекта.
APP_STL := gnustl_static
Других решений пока нет …