以下のtest.cppファイルを

#include <opencv2/opencv.hpp>
int main(){
    cv::Mat a = cv::imread("test.jpg", 1); 
    cv::imshow("hello", a); 
    cv::waitKey();
}

次のように実行したところ、
c++ -std=c++14 test.cpp -I/usr/local/Cellar/opencv/4.0.1/include/opencv4
次のようなエラーが出て実行できませんでした。

Undefined symbols for architecture x86_64:
  "cv::Mat::deallocate()", referenced from:
      cv::Mat::release() in test-4fd227.o
  "cv::imread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int)", referenced from:
      _main in test-4fd227.o
  "cv::imshow(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cv::_InputArray const&)", referenced from:
      _main in test-4fd227.o
  "cv::waitKey(int)", referenced from:
      _main in test-4fd227.o
  "cv::fastFree(void*)", referenced from:
      cv::Mat::~Mat() in test-4fd227.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

/usr/local/Cellar/opencv/4.0.1/include/opencv4にはopencv2フォルダがあり、中にはopencv.hppを含んだ大量のhppファイルがあるので、おそらくopenCVの本体だと思っています。

どうすれば動くようになりますか?

環境

macOS Mojave 10.14.2
通常のc++コードはコンパイル&実行できる。
brew経由でインストール

2019 3/29 0:20追記

  • /usr/local/Cellar/opencv/4.0.1/libにはlibade.aとかlibopencv_aruco.4.0.1.dylibといった名前のファイルがありますが、この場所がライブラリパスでしょうか?
  • c++ -std=c++14 test.cpp -I/usr/local/Cellar/opencv/4.0.1/include/opencv4 -I/usr/local/Cellar/opencv/4.0.1/include/opencv4/opencv2 -L/usr/local/Cellar/opencv/4.0.1/libを実行しても同じエラーが出てしまいます…

2019 4/4 14:33追記

  • /usr/local/Cellar/opencv/4.0.1/lib/pkgconfigというフォルダがあり、中にopencv4.pcだけ入っている。

2019 4/6 20:42追記

  • 以下の手順で解決に至った。
  • 環境変数PKG_CONFIG_PATHが作られてなかったので、~/.bash_profileexportPKG_CONFIG_PATH="/usr/local/lib/pkgconfig/"を追加。