5

プロジェクトでzxingとOpenCVlibを使用しています。今日、XCodeを4.5から4.6に更新しましたが、このエラーが発生します。

externalLibs / boost / include / boost / gil / channel_algorithm.hpp:54:85:型以外のテンプレート引数は-1と評価され、「unsignedlonglong」型に絞り込むことはできません。

そして、このエラーは、OpenCVライブラリのクラスの1つにあるこのコード行にあります:-

struct unsigned_integral_max_value : public mpl::
integral_c< UnsignedIntegralChannel,-1> {};

Xcodeの以前のバージョンでは、正常に動作しています。

前もって感謝します。

4

3 に答える 3

1

Boostは、新しいclangコンパイラで追加されたc++11のサポートを好まないようです

だから..それはビルド設定でc++11サポートを無効にすることを言います ここに画像の説明を入力してください

= src:https ://svn.boost.org/trac/boost/ticket/7270を参照

于 2013-01-29T13:06:56.797 に答える
0

unsigned long long変数の最大値は、16進数の0xFFFFFFFF FFFFFFFFです。つまり、すべてのビットが1です。符号付き数値として解釈される場合、これは-1に対応します。そのため、プログラマーは、コンパイラーが文句を言わないことを期待して、代わりに-1を使用することがよくあります。どうやら、これはXCode 4.5では発生しませんでしたが、4.6ではより厳密なチェックが行われます...

于 2013-01-29T13:16:50.393 に答える
0

とを使用してmacOSSierraでコンパイルすると、同じエラーが発生しApple LLVM version 8.1.0 (clang-802.0.42)ます-std=c++11。この問題を解決するために、次のコンパイラフラグを含めました。-Wno-error=c++11-narrowing

于 2017-05-18T22:10:05.173 に答える