問題タブ [stlport]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android-ndk - AndroidNDKでstd::wstringサポートが欠落している場合の解決策?
何千もの場所で基本的な文字列型としてstd::wstringを使用し、wchar_tとその関数(wcsicmp()wcslen()vsprintf()など)を操作するゲームがあります。
問題は、wstringがR5c(この書き込みの時点で最新のndk)でサポートされていないことです。
国際化のためにstd::stringを使用するようにコードを変更できず、多くのゲームで使用されているゲームエンジンを壊してしまいます...
どのオプションがありますか?
1-stringとwstringを独自の文字列クラスに置き換えます
これにより、プラットフォームの独立性が向上しますが、ホイールを再実装するのはばかげています。私はすでに文字列のCOW実装から始めました。hash_mapsのキーとして使用するため、COWである必要があります。もちろん、これは多くの作業とエラーが発生しやすいです...しかし、それは私ができることのようです。
2-C標準ライブラリ(wcslen、mbstowcs ...)のワイド文字列関数の独自の実装を使用してSTLPortを再コンパイルするNDKを修正してみてください
これは好ましい方法です...しかし、私はそれを行う方法がわかりません:(
libstdc ++。aまたはlibstlport_static.aの関数(たとえばwcslen)を置き換えるにはどうすればよいですか?(どこにあるかわからない:()
また、どの関数を再実装する必要があるのかわからないので、wcslenが機能していないことはわかっているので、すべてである必要があると思います...
3-他に何かアイデアはありますか?
これに対する公式の修正を待つことはできません。#2の方法がわからない場合は、オプション#1を選択する必要があります。
2.3をターゲットにするとwstringsを使用できるとどこかで読んだことがありますが、Android2.1をターゲットにする必要があります。
PS:もちろんSTLを使用する必要があると言うのを忘れましたが、RTTIはなく、例外なく生きることができます。
前もって感謝します!
c++ - STLPort、Intel コンパイラ、ビルド エラー (ただし、アプリは正常に動作します!)
プロジェクトを STLPort に対してコンパイルすると、奇妙なビルド エラーが発生します。奇妙なことに、ビルド エラーは致命的だと思うかもしれませんが、プロジェクトは問題なく (そして 20 ~ 30% 高速に) 実行されます。
私が間違っていることと、これらを黙らせる方法について誰かが教えてくれますか?
(libiomp5md は Intel の openmp サポートからのものです。私は stlport に切り替える前にそれを使用していましたが、現在も openmp で実行しているため、変更する必要がある理由はわかりません)。
ランタイム ライブラリ (C++ コード生成設定) がマルチスレッドに設定されています。
前もって感謝します!
編集: ipo は、現在のビルドでコンパイルされていないライブラリを開くことができないと不平を言う手続き間の最適化のようです。これらのエラーが致命的ではないことは理解でき、出力は引き続きビルドされます。それでも、アドバイスをいただければ幸いです。
c++ - カーネルで STLPort を使用するには?
C++ でカーネルを開発しています。しかし、私は書きたくありませんstdlib
; そのためにSTLport
http://www.stlport.org/をダウンロードしましたが、インストール方法と使用方法がわかりません。
カーネルの構築に Linux を使用しています。
カーネルで C++ 標準ライブラリを使用するにはどうすればよいですか?
また、STLport からすべてのライブラリを移植したくありません。選択したライブラリを除外するにはどうすればよいですか? などのようstd::string
に。std::vector
boost - STLport ライブラリで Boost をビルドできない
MSVC 7.1 を使用して、Windows で STLport 5.2.1 を使用してブースト 1.48.0 をビルドしています。実行するコマンド ラインは次のとおりです。
私の user-config.jam は次のように設定されています。
STLport に関連するリンカー エラーがいくつか発生します。それらの1つは次のようになります。
STLport で Boost ビルドを取得できないのはなぜですか?
c++ - stringstream 演算子の選択の問題
私は次のようなクラスコンストラクタを持っています:
私はそれを次のように呼びます:
これは単純化しすぎた例ですが、本質的にはこれが起こっていることです。これが私が得ている正確なコンパイラエラーです。何らかの理由で、渡された結果のオブジェクトが basic_ostream であることに注意してください。これが正常かどうかはわかりません。私の関数が期待するように、それを std::stringstream にキャストすることはできません。
WindowsでVS2003とSTLportを使用しています。
ここで私が間違っている場所を知っている人はいますか?このコードがコンパイルされないのはなぜですか? 情報が不足している場合は、あらかじめお詫び申し上げます。詳細情報を要求する人のために、質問を更新します。
c++ - STLPort の構築エラー
プロジェクトで STLPort を使用しようとしていますが、の指示に従うとINSTALL.unixes
コンパイル エラーが発生します。
を実行./configure
した後make
、出力は以下のとおりです。Ubuntu で make 3.81 と gcc 4.6.1 を使用しています。
編集:追加しようとしまし--with-extra-cxxflags="-std=c++ox"
たが、以下にリストされている別の小さなエラーセットが表示されます。
visual-studio-2010 - VS2010でのSTLPortデバッグ
VS2010でSTLPortコンテナをデバッグする方法を知っていますか?STLコンテナと同じくらい簡単にデバッグしたいと思います。
c++ - 名前が変更されたら、元の名前空間に戻すにはどうすればよいですか?
私はstlportと呼ばれるライブラリを使用しています。これは、次のstd
ように名前空間 を再定義します。
このため、コード内で使用しようとすると、どこでも。std::something
に置き換えられ_STLP::something
ます。
行をコメントアウトする#define std STLPORT
と、レガシープロジェクトのコードはコンパイルされません(stlportに依存します)。
行をコメントアウトしないと、追加しようとしている新しいライブラリは、std::
stlportが使用するものとは異なるアロケータのセットで使用されるため、コンパイルされません。衝突を入力します。
#define STLPORT std
新しいライブラリを含める直前に一列に並べ てみましたが、この#defineは機能していないようです。
このように再定義されたノーマルを使用する方法はありstd
ますか?
gcc - arm-linux-gcc で STLPort をコンパイルすると不明なエラーが発生する
uclinux用のクロスコンパイラツールチェーンでSTLPortをコンパイルしようとしていました。 STLPort ライブラリのルート フォルダにある INSTALL に従って、新しいツールチェーンを追加する場合は、最も近いツールチェーンを見つけて、コンパイラ用に変更する必要があります。 gcc.mak を選択し、gcc を arm-linux-gcc に、c++ を arm-linux-c++ に変更します。コンパイル時にこのエラーが発生しました:
このエラーは何ですか? arm-linux-gcc で STLPort 用の適切な Makefile を作成するにはどうすればよいですか?
編集:エラーは最初の回答で修正されましたが、別のエラーがあります:コードをコンパイルしようとすると、メイクファイルは次の文を取得します:
*注意!*
この makefile は、すべての glibc フレーバーでうまく機能しない可能性があるシステム ロケールを使用しようとします。ビルドが失敗した場合は、STLport の C ロケールのみのバージョンをビルドする gcc.mak に頼ってください。最終的に c_local.c で次のエラーが発生しました。
このエラーは、makefile の注意に関連していると思います。問題を解決するにはどうすればよいですか? 出席中の gcc.mak のリゾートとは何ですか?
visual-c++ - STLport void *operator new(size_t,void *)' を使用する Wince 5.0 には既に本体があります
WindowsからWinceへの変換作業を行っています。iostream を使用するには、 を選択しますSTLport5.2.1
。vs2008でコンパイル エラーが発生します。
am files (x86)\windows ce tools\wce500\athenapbws\mfc\include\wcealt.h(248): エラー C2084: 関数 'void *operator new(size_t,void *)' には既に本体があります
2> D:\Program Files (x86)\Windows CE Tools\wce500\AthenaPBWS\include\ARMV4I../Armv4i/new(71) : 「new」の以前の定義を参照
2>d:\program files (x86)\windows ce tools\wce500\athenapbws\mfc\include\wcealt.h(254): エラー C2084: 関数 'void operator delete(void *,void *)' には既に本体があります
2> D:\Program Files (x86)\Windows CE Tools\wce500\AthenaPBWS\include\ARMV4I../Armv4i/new(73) : 「削除」の前の定義を参照
2>Util1.cpp 2>D:\Program Files (x86)\Windows CE Tools\wce500\AthenaPBWS\include\ARMV4I../Armv4i/new(72): エラー C2084: function 'void *operator new(size_t,void *)' にはすでに本体があります
2> d:\program files (x86)\windows ce tools\wce500\athenapbws\mfc\include\wcealt.h(247) : 'new' の以前の定義を参照
2>D:\Program Files (x86)\Windows CE Tools\wce500\AthenaPBWS\include\ARMV4I../Armv4i/new(74): エラー C2084: 関数 'void operator delete(void *,void *)' は既に体
2> d:\program files (x86)\windows ce tools\wce500\athenapbws\mfc\include\wcealt.h(253) : 「削除」の前の定義を参照
どのようにエラーを解決できますか?