OpenCVをコンパイルしようとしています。 masterブランチ(現在dc9602eのコミット中)とバージョン/タグ3.1.0を試しました。私はFedora 24を使用しています。最初にFedoraに付属のgcc(gcc(GCC)6.2.1 20160916(Red Hat 6.2.1-2))を使用してみました。私のマシンでコンパイルされたGCC 6.2.0も試しました。
次のパラメーターでcmakeを使用しています。
cmake -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=/usr/local -DBUILD_NEW_PYTHON_SUPPORT=ON -DINSTALL_PYTHON_EXAMPLES=ON -DWITH_TBB=ON -DWITH_V4L=ON -DINSTALL_C_EXAMPLES=ON -DBUILD_EXAMPLES=ON -DWITH_QT=ON -DWITH_OPENGL=ON -DWITH_OPENCL=ON -DWITH_EIGEN=ON -DWITH_OPENEXR=ON
cmake
が正常に実行された後、make
を実行します。 OpenCVバージョンとgccバージョンの組み合わせは関係ありません。結果は同じです:
In file included from /usr/local/include/c++/6.2.0/bits/stl_algo.h:59:0,
from /usr/local/include/c++/6.2.0/algorithm:62,
from /home/dmelo/proj2/opencv/modules/core/include/opencv2/core/base.hpp:55,
from /home/dmelo/proj2/opencv/modules/core/include/opencv2/core.hpp:54,
from /home/dmelo/proj2/opencv/modules/highgui/include/opencv2/highgui.hpp:46,
from /home/dmelo/proj2/opencv/build/modules/highgui/precomp.hpp:45:
/usr/local/include/c++/6.2.0/cstdlib:75:25: fatal error: stdlib.h: No such file or directory
#include_next <stdlib.h>
^
compilation terminated.
他の誰かがこれを経験していますか?この問題を解決するにはどうすればよいですか?
Cmake-guiから、またはコマンドラインパラメーターを使用して、プリコンパイル済みヘッダーを無効にしてみてください。
-DENABLE_PRECOMPILED_HEADERS=OFF
Zipパッケージ(opencv-2.4.11)からのコンパイルは機能しませんでしたが、 github repo の最新バージョン*により、ubuntu 17.04でのビルドが成功しました
git clone https://github.com/opencv/opencv.git
cd opencv
mkdir mybin
cd mybin
cmake -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=/usr/local -DENABLE_PRECOMPILED_HEADERS=OFF -DWITH_FFMPEG=OFF ..
make
Sudo make install
更新:git checkout 3.4
の後にgit clone
を実行することをお勧めします。
注:ffmpegは非推奨であり、オプションなので、WITH_FFMPEG=OFF
フラグを使用しました
更新:18.04のffmpegでビルドでき、WITH_FFMPEG=ON
フラグが使用されました。最新のffmpegも17.04で動作するはずです。成功したらコメントしてください!
* OpenCVコミットID cca99bf8249387da9f79be8d549b2d49e39a0289
追加情報:コンパイルする前にインストールした依存関係-
build-essential cmake git libgtk2.0-dev pkg-config python-dev python-numpy libavcodec-dev libavformat-dev libswscale-dev libjpeg-dev libpng-dev libtiff-dev libdc1394-22-dev libtbb2 libtbb-dev
これが将来誰かに役立つことを願っています!
私にとってこれ:
[ 33%] Building CXX object
/home/rdp/ffmpeg-windows-build-helpers/sandbox/cross_compilers/mingw-w64-x86_64/bin/x86_64-w64-mingw32-g++ @CMakeFiles/Transform360.dir/includes_CXX.rsp -std=c++11 -O3 -DNDEBUG -o CMakeFiles/Transform360.dir/Library/VideoFrameTransform.cpp.obj -c /home/rdp/ffmpeg-windows-build-helpers/sandbox/win64/transform360_git/Transform360/Library/VideoFrameTransform.cppCMakeFiles/Transform360.dir/Library/VideoFrameTransform.cpp.obj
In file included from /home/rdp/ffmpeg-windows-build-helpers/sandbox/cross_compilers/mingw-w64-x86_64/x86_64-w64-mingw32/include/c++/8.2.0/ext/string_conversions.h:41,
from /home/rdp/ffmpeg-windows-build-helpers/sandbox/cross_compilers/mingw-w64-x86_64/x86_64-w64-mingw32/include/c++/8.2.0/bits/basic_string.h:6391,
from /home/rdp/ffmpeg-windows-build-helpers/sandbox/cross_compilers/mingw-w64-x86_64/x86_64-w64-mingw32/include/c++/8.2.0/string:52,
from /home/rdp/ffmpeg-windows-build-helpers/sandbox/cross_compilers/mingw-w64-x86_64/x86_64-w64-mingw32/include/c++/8.2.0/stdexcept:39,
from /home/rdp/ffmpeg-windows-build-helpers/sandbox/cross_compilers/mingw-w64-x86_64/x86_64-w64-mingw32/include/c++/8.2.0/array:39,
from /home/rdp/ffmpeg-windows-build-helpers/sandbox/cross_compilers/mingw-w64-x86_64/x86_64-w64-mingw32/include/c++/8.2.0/Tuple:39,
from /home/rdp/ffmpeg-windows-build-helpers/sandbox/cross_compilers/mingw-w64-x86_64/x86_64-w64-mingw32/include/c++/8.2.0/bits/stl_map.h:63,
from /home/rdp/ffmpeg-windows-build-helpers/sandbox/cross_compilers/mingw-w64-x86_64/x86_64-w64-mingw32/include/c++/8.2.0/map:61,
from /home/rdp/ffmpeg-windows-build-helpers/sandbox/win64/transform360_git/Transform360/Library/VideoFrameTransform.h:18,
from /home/rdp/ffmpeg-windows-build-helpers/sandbox/win64/transform360_git/Transform360/Library/VideoFrameTransform.cpp:14:
/home/rdp/ffmpeg-windows-build-helpers/sandbox/cross_compilers/mingw-w64-x86_64/x86_64-w64-mingw32/include/c++/8.2.0/cstdlib:75:15: fatal error: stdlib.h: No such file or directory
#include_next <stdlib.h>
^~~~~~~~~~
compilation terminated.
here からのヒント「CMakeFiles/Transform360.dir/includes_CXX.rspを編集し、-isystemを-Iに置き換える」というヒント