0

NDK 作業の一環として、次の C++ コードを Android に移植しようとしています。

#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>

これを解決するにはどうすればよいですか? ありがとうございました。

更新: このコードを、ビルドして正常に実行された Android プロジェクトの既存の C++ コードに追加しようとしています。上記にリンクされている変更を適用すると、unresolved inclusionfstream だけでなく、他の多くのエラーも発生しました。たとえば、既存のコードから次のブロックを作成します。

#include <jni.h>
#include <opencv2/core/core.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/features2d/features2d.hpp>
#include <vector>

Unresolved inclusionエラーも発生しています。それで事態はさらに悪化しました。

4

1 に答える 1

0

Application.mkプロジェクトに次の行を追加してみてください。

APP_STL := gnustl_static
于 2014-01-18T15:33:31.643 に答える