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

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

OpenCV 4.0.0-betaをダウンロード
[powershell]
unzip opencv-4.0.0-beta.zip
[/powershell]
でを展開してcd
[powershell]
mkdir build
[/powershell]
でビルドディレクトリを作成してcd
[powershell]
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 ..
[/powershell]
でビルド準備。
-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がコンパイルエラー起こすんで、
[patch]
— .\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);
[/patch]
これを適用してからmake
結構時間がかかるから、風呂入ったり飯くったりしたほうが良さそう。
あとは、実際にこれで簡単なプログラムが動くかだ……

コメントを残す

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