Scoop環境でOpenCV4.0Betaをビルドしてみた

とりあえず、まだビルドできたってだけのメモ。


OpenCV 4.0.0-betaをダウンロード

unzip opencv-4.0.0-beta.zip

でを展開してcd

mkdir build

でビルドディレクトリを作成してcd

cmake -G "MinGW Makefiles" -DCMAKE_SH="CMAKE_SH-NOTFOUND" -DCMAKE_INSTALL_PREFIX="D:\Scoop\lib" -DENABLE_CXX11=OFF -DHAVE_CXX11=OFF -DCMAKE_CXX_FLAGS="-std=gnu++14" -DWITH_IPP=OFF -DWITH_MSMF=OFF  ..

でビルド準備。
-DENABLE_CXX11=OFF
-DHAVE_CXX11=OFF
-DCMAkE_CXX_FLAGS=”-std=gun++14″
はC++11じゃなくってGnu独自拡張の入ったC++14を使うために設定。
-DWITH_IPP=OFF
-DWITH_MSMF=OFF
はビルドエラーを防ぐために設定。

cmkeが通ったら、そのままmakeすると途中でadeがコンパイルエラー起こすんで、

--- .\alloc.cpp.orig
+++ .\alloc.cpp
@@ -6,7 +6,7 @@

 #include "ade/memory/alloc.hpp"

-#if defined(WIN32) || defined(__ANDROID__) || defined(ANDROID)
+#if defined(_WIN32) || defined(__ANDROID__) || defined(ANDROID)
 #include <malloc.h>
 #else
 #include <algorithm>
@@ -22,7 +22,7 @@
 void* aligned_alloc(std::size_t size, std::size_t alignment)
 {
     ADE_ASSERT(util::is_pow2(alignment));
-#if defined(WIN32)
+#if defined(_WIN32)
     return _aligned_malloc(size, alignment);
 #elif defined(__ANDROID__) || defined(ANDROID)
     return memalign(alignment, size);
@@ -36,7 +36,7 @@

 void aligned_free(void* ptr)
 {
-#if defined(WIN32)
+#if defined(_WIN32)
     return _aligned_free(ptr);
 #else
     return free(ptr);

これを適用してからmake

結構時間がかかるから、風呂入ったり飯くったりしたほうが良さそう。

あとは、実際にこれで簡単なプログラムが動くかだ……

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください