質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

FreeBSD

FreeBSDは、Unix系のオープンソースのOSです。PC/AT互換機用ですが、他のプラットフォームにも移植されています。優れたネットワーク・セキュリティ・ストレージ機能で人気のOSです。ソースコードと共に無償で公開されており、多くの コミュニティによって長年に渡って開発されています。

Q&A

1回答

2316閲覧

FreeBSDでmake実行時にエラーが出て止まる。

aiueoaiueoaiue

総合スコア94

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

FreeBSD

FreeBSDは、Unix系のオープンソースのOSです。PC/AT互換機用ですが、他のプラットフォームにも移植されています。優れたネットワーク・セキュリティ・ストレージ機能で人気のOSです。ソースコードと共に無償で公開されており、多くの コミュニティによって長年に渡って開発されています。

0グッド

0クリップ

投稿2018/04/08 14:36

編集2018/04/09 02:46

###実現したい事
FreeBSD11.1にてOpenCV3.4.1をビルドするためにmakeコマンドを実行したのですが、エラーが出て中断してしまいました。以前このサイトでビルドに成功した人はいないらしいという情報を得たのですが、諦めきれませんでした。この対処法ご存知の方回答お願いします。
###エラー

-- Configuring done -- Generating done -- Build files have been written to: /home/ユーザ名/support/src/opencv/opencv-3.4.1/build root@ホスト名:/home/ユーザ名/support/src/opencv/opencv-3.4.1/build # make Scanning dependencies of target gen-pkgconfig [ 0%] Generate opencv.pc [ 0%] Built target gen-pkgconfig Scanning dependencies of target ippiw [ 0%] Building C object 3rdparty/ippiw/CMakeFiles/ippiw.dir/src/iw_core.c.o In file included from /home/ユーザ名/support/src/opencv/opencv-3.4.1/build/3rdparty/ippicv/ippiw_lnx/src/iw_core.c:58: /usr/include/malloc.h:3:2: error: "<malloc.h> has been replaced by <stdlib.h>" #error "<malloc.h> has been replaced by <stdlib.h>" ^ 1 error generated. *** Error code 1 Stop. make[2]: stopped in /home/ユーザ名/support/src/opencv/opencv-3.4.1/build *** Error code 1 Stop. make[1]: stopped in /home/ユーザ名/support/src/opencv/opencv-3.4.1/build *** Error code 1 Stop. make: stopped in /home/ユーザ名/support/src/opencv/opencv-3.4.1/build

###試したこと
cmake3.10.2でconfigureを行った後にmakeコマンドで実行しました。
###エラーその2

/home/ユーザ名/support/src/opencv/opencv-3.4.1/modules/core/src/utils/filesystem.cpp:108:17: error: variable has incomplete type 'struct stat' struct stat stat_buf; ^ /home/ユーザ名/support/src/opencv/opencv-3.4.1/modules/core/src/utils/filesystem.cpp:108:12: note: forward declaration of 'stat' struct stat stat_buf; ^ /home/ユーザ名/support/src/opencv/opencv-3.4.1/modules/core/src/utils/filesystem.cpp:129:23: error: use of undeclared identifier 'rmdir' bool result = rmdir(path.c_str()) == 0; ^ /home/ユーザ名/support/src/opencv/opencv-3.4.1/modules/core/src/utils/filesystem.cpp:141:23: error: use of undeclared identifier 'unlink' bool result = unlink(path.c_str()) == 0; ^ /home/ユーザ名/support/src/opencv/opencv-3.4.1/modules/core/src/utils/filesystem.cpp:380:17: error: allocation of incomplete type 'cv::utils::fs::FileLock::Impl' : pImpl(new Impl(fname)) ^~~~ /home/ユーザ名/support/src/opencv/opencv-3.4.1/modules/core/include/opencv2/core/utils/filesystem.private.hpp:55:12: note: forward declaration of 'cv::utils::fs::FileLock::Impl' struct Impl; ^ /home/ユーザ名/support/src/opencv/opencv-3.4.1/modules/core/src/utils/filesystem.cpp:386:5: warning: deleting pointer to incomplete type 'cv::utils::fs::FileLock::Impl' may cause undefined behavior [-Wdelete-incomplete] delete pImpl; ^ ~~~~~ /home/ユーザ名/support/src/opencv/opencv-3.4.1/modules/core/include/opencv2/core/utils/filesystem.private.hpp:55:12: note: forward declaration of 'cv::utils::fs::FileLock::Impl' struct Impl; ^ /home/ユーザ名/support/src/opencv/opencv-3.4.1/modules/core/src/utils/filesystem.cpp:390:40: error: member access into incomplete type 'cv::utils::fs::FileLock::Impl' void FileLock::lock() { CV_Assert(pImpl->lock()); } ^ /home/ユーザ名/support/src/opencv/opencv-3.4.1/modules/core/include/opencv2/core/utils/filesystem.private.hpp:55:12: note: forward declaration of 'cv::utils::fs::FileLock::Impl' struct Impl; ^ /home/ユーザ名/support/src/opencv/opencv-3.4.1/modules/core/src/utils/filesystem.cpp:391:42: error: member access into incomplete type 'cv::utils::fs::FileLock::Impl' void FileLock::unlock() { CV_Assert(pImpl->unlock()); } ^ /home/ユーザ名/support/src/opencv/opencv-3.4.1/modules/core/include/opencv2/core/utils/filesystem.private.hpp:55:12: note: forward declaration of 'cv::utils::fs::FileLock::Impl' struct Impl; ^ /home/ユーザ名/support/src/opencv/opencv-3.4.1/modules/core/src/utils/filesystem.cpp:392:47: error: member access into incomplete type 'cv::utils::fs::FileLock::Impl' void FileLock::lock_shared() { CV_Assert(pImpl->lock_shared()); } ^ /home/ユーザ名/support/src/opencv/opencv-3.4.1/modules/core/include/opencv2/core/utils/filesystem.private.hpp:55:12: note: forward declaration of 'cv::utils::fs::FileLock::Impl' struct Impl; ^ /home/ユーザ名/support/src/opencv/opencv-3.4.1/modules/core/src/utils/filesystem.cpp:393:49: error: member access into incomplete type 'cv::utils::fs::FileLock::Impl' void FileLock::unlock_shared() { CV_Assert(pImpl->unlock_shared()); } ^ /home/ユーザ名/support/src/opencv/opencv-3.4.1/modules/core/include/opencv2/core/utils/filesystem.private.hpp:55:12: note: forward declaration of 'cv::utils::fs::FileLock::Impl' struct Impl; ^ 1 warning and 8 errors generated. *** Error code 1 Stop. make[2]: stopped in /home/ユーザ名/support/src/opencv/opencv-3.4.1/build *** Error code 1 Stop. make[1]: stopped in /home/ユーザ名/support/src/opencv/opencv-3.4.1/build *** Error code 1 Stop. make: stopped in /home/ユーザ名/support/src/opencv/opencv-3.4.1/build

###/home/ユーザ名/support/src/opencv/opencv-3.4.1/modules/core/src/utils/filesystem.cppの内容
107から142行目

#else struct stat stat_buf; return (0 == stat(path.c_str(), &stat_buf)); #endif } CV_EXPORTS void remove_all(const cv::String& path) { if (!exists(path)) return; if (isDirectory(path)) { std::vector<String> entries; utils::fs::glob(path, cv::String(), entries, false, true); for (size_t i = 0; i < entries.size(); i++) { const String& e = entries[i]; remove_all(e); } #ifdef _MSC_VER bool result = _rmdir(path.c_str()) == 0; #else bool result = rmdir(path.c_str()) == 0; #endif if (!result) { CV_LOG_ERROR(NULL, "Can't remove directory: " << path); } } else { #ifdef _MSC_VER bool result = _unlink(path.c_str()) == 0; #else bool result = unlink(path.c_str()) == 0; #endif

379から393行目

FileLock::FileLock(const char* fname) : pImpl(new Impl(fname)) { // nothing } FileLock::~FileLock() { delete pImpl; pImpl = NULL; } void FileLock::lock() { CV_Assert(pImpl->lock()); } void FileLock::unlock() { CV_Assert(pImpl->unlock()); } void FileLock::lock_shared() { CV_Assert(pImpl->lock_shared()); } void FileLock::unlock_shared() { CV_Assert(pImpl->unlock_shared()); }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

error: "<malloc.h> has been replaced by <stdlib.h>"

対処法は、エラーメッセージを読むことです

投稿2018/04/08 21:55

y_waiwai

総合スコア87774

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

aiueoaiueoaiue

2018/04/09 01:45

<malloc.h>を<stdlib.h>に変更してビルドが14%ほど進みましたが、今度は別のエラーがたくさん出てきました。
y_waiwai

2018/04/09 01:49

そのエラーを読んで理解してください。 せっかく、なんでそのエラーが出ているかを出してくれているのに、それを読まないことには先に進みようがないことぐらいわかるでしょう。
y_waiwai

2018/04/09 02:59

上からいくつかgoogle翻訳にかけてみました error: variable has incomplete type 'struct stat' =>エラー:変数に不完全な型 'struct stat'があります error: use of undeclared identifier 'rmdir' =>エラー:宣言されていない識別子 'rmdir'の使用 error: allocation of incomplete type 'cv::utils::fs::FileLock::Impl' =>エラー:不完全な型の割り当て 'cv :: utils :: fs :: FileLock :: Impl' error: member access into incomplete type 'cv::utils::fs::FileLock::Impl' => エラー:不完全な型へのメンバアクセス 'cv :: utils :: fs :: FileLock :: Impl'
y_waiwai

2018/04/09 03:03

知らないことがあるのは恥ずべきことでもないし、ひとに教えを請うというのも恥じるものでもない、と私は思っていますが、理解できない、と言ってのける前にもうちょっとするべきことはあるんじゃないの?とはおもいます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問