3
我正在嘗試使用OpenCV庫編寫一個C++應用程序。根據OpenCV維護人員的建議,我使用CMake生成Makefile。我的平臺是Windows 7(64位)。我的編譯器是MinGW(所以我使用'mingw32-make'工具來構建應用程序)。包括OpenCV庫DLL與CMake
現在我試圖確保我的設置是正確的,所以我可以繼續前進的代碼。我已經驗證OpenCV庫已經正確構建。然後我試圖驗證我可以使用CMake在我的版本中包含OpenCV庫。我使用以下示例代碼從OpenCV的教程:
DisplayImage.cpp
#include <cv.h>
#include <highgui.h>
using namespace cv;
int main(int argc, char** argv)
{
Mat image;
image = imread(argv[1], 1);
if (argc != 2 || !image.data)
{
printf("No image data \n");
return -1;
}
namedWindow("Display Image", CV_WINDOW_AUTOSIZE);
imshow("Display Image", image);
waitKey(0);
return 0;
}
的CMakeLists.txt
cmake_minimum_required(VERSION 2.8)
project(DisplayImage)
find_package(OpenCV REQUIRED)
add_executable(DisplayImage DisplayImage)
target_link_libraries(DisplayImage ${OpenCV_LIBS})
我使用的cmake桂以產生生成文件,然後用於mingw32-使建立應用程序。一切工作正常,程序編譯沒有錯誤。但是,當我嘗試運行它時,Windows停止並抱怨它需要libopencv_core231.dll。我檢查了這個DLL在我的(OpenCV Build location)/ bin目錄中。如何在編譯時讓CMake/MinGW包含此內容?
是不是CMake應該包括我的dll的目錄,所以我不必將它們複製到每個可執行文件夾? – astay13
這不是CMakes的問題。操作系統正在搜索所需的dll。 – neagoegab
是的,但不是CMake應該告訴可執行文件它可以找到它們的位置嗎? – astay13