問題タブ [cpp-netlib]
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.
c++ - リクエスト ヘッダーの Http Digest 認証と utf-8 シンボル
cpp-netlibに基づいてサーバーにHTTP ダイジェスト認証を実装しようとしていますが、認証ヘッダーの属性に Unicode シンボルが含まれる可能性があるという問題にどのように対処すればよいかわかりません- 実際のダイジェスト認証 RFC はこれに固有のものではありません. ただし、実際には、たとえば Chrome は utf-8 でエンコードされたユーザー名を送信するだけで問題ありませんが、cpp-netlib が着信ストリームを解析し、ヘッダーの内容が Boost とstd::isalnumおよびその仲間を使用して英数字であるかどうかをチェックするという事実は別として(わかりました、Linuxでは現在のロケールをutf-8に設定するだけで済みますが、私はWindowsを使用しています)。もちろん、それはアサーションとそうでないものを引き起こします。したがって、与えられた事実に基づいて、一般的な意見を求めているだけです。username
1)これをダンプするだけで(そして私はそれに本当に近いです)、認証にカスタマイズされたPOST / GETを使用するだけですか?2)これに取り組むために、Boostの動作をカスタマイズすることはできますか? 3) このような問題は、POCOや、この状況で代わりに使用できる他の Web サーバー フレームワークで何らかの方法で処理されるのでしょうか?
visual-studio-2012 - CMake - /MD の代わりに /MT でコンパイルする
私はcmake(2.8.12.1)の初心者で、Windowsでそれを使用してプロジェクトファイルを生成し、Visual Studio 2012を使用してcpp-netlibを構築しています。
デフォルトでは、/MDd コンパイラ スイッチでコンパイルされます。/MTdを使うように変更したい。
https://stackoverflow.com/a/14172871のアドバイスに従いましたが、うまくいきません。
具体的には、CmakeLists.txt の if 文に以下の 2 行目を追加しました。
Visual Studio sln ファイルを開くと、/MDd オプションがまだ設定されていることがわかります。さらに、CMakeCache.txt に次のように表示されます。
また、次のようにフラグを最初から設定しようとしました。
しかし、それもうまくいきません。
次のようにコマンドライン経由でオプションを渡すと:
このオプションは、Visual Studio プロジェクトで正常に設定されています。
誰が私が間違っているのか教えてもらえますか?
コマンドラインで指定していない、またはCmakeLists.txtにないキャッシュ内の値がどこから来ているかについて誰かが教えてくれれば幸いです。
要求に応じて CMakeList.txt を追加します。私はこれまで投稿したことがないので、これを正しく行っていない場合は申し訳ありません。
c++ - C++ コンパイラは cpp-netlib ブースト ライブラリを見つけられません。そのようなファイルまたはディレクトリはありません
これが私のコードの上部です。
/cpp-netlib-0.10.1/boost/ 内のすべてのファイルを、正常に検出された他の .hpp ファイルが存在する boost フォルダーにコピーしましたが、他のファイルは見つかりません。インデックスを再構築しようとしましたが、インクルージョンを削除して再度追加しましたが、成功しませんでした。
また、問題のある行のパスから「boost/」部分を削除すると、ヘッダー ファイルは正常に検出されますが、ヘッダー ファイル内からリンクされたヘッダー ファイルには同じエラーが発生します。
皆さんが提供できる助けをありがとう。
c++ - cpp-netlib の問題、「boost::exception_detail::clone_impl」のインスタンスをスローした後に終了が呼び出される
以下のコードを例外処理のあるループで実行しています。
コードは問題なく動作しますが、ネットワーク インターフェイスを無効にしてネットワーク障害が発生した場合にソフトウェアをテストすると、次のエラーが表示されます。
'boost::exception_detail::clone_impl >' what() のインスタンスをスローした後に呼び出された終了: ブースト スレッド: 自分自身に参加しようとしています: リソースのデッドロックが回避されました
このエラーをキャッチできないようです。このコードは 24 時間年中無休でステータス チェックを実行するため、ネットワーク エラーが発生したときに検出される可能性が高くなります。最悪の部分は、1 回、2 回、3 回、または 4 回試行した後に失敗する可能性があることです。ソケットを使用して HTTP プロトコルソケットを自分で実装することは本当に避けたいのですが、そうする必要があるかもしれません。何か案は?
cmake - Raspbian の cpp-netlib のクロスコンパイル エラー
クロスコンパイラを使用してブーストを正常にコンパイルし ( Raspberry Pi クロスコンパイラのインストールの手順を使用)、問題なく動作しました。
libとインクルードをrootfsに移動して、cmakeがそれを見つけられるようにしました...そしてcmakeを実行すると、
これは素晴らしいです...今、私がmakeを実行すると、それはで終わります
しかし... ~/raspberrypi/rootfs/lib/arm-linux-gnueabihf 内に libz.so.1 があります
テストだけで失敗すること、ライブラリを使用できることはわかっていますが、必要なものをクロスコンパイルするための適切な環境が必要です。
ご協力いただきありがとうございます :)
編集:ldd libssl.so
ラズベリーで実行して取得しました
編集2: cmakeを実行する-DCMAKE_SKIP_BUILD_RPATH=FALSE -DCMAKE_BUILD_WITH_INSTALL_RPATH=FALSE -DCMAKE_INSTALL_RPATH=/home/gervasio/raspberrypi/rootfs/lib/arm-linux-gnueabihf -DCMAKE_INSTALL_RPATH_USE_LINK_PATH=TRUE
と、この出力が得られます
-rpath,/home/gervasio/raspberrypi/rootfs/usr/lib/arm-linux-gnueabihf
それは大丈夫ではないと言っているところですよね?