我安装了多个版本的OpenCV,而CMake发现了错误的版本。我使用brew安装了opencv和opencv3,它们存在于以下路径中:
$(document).ready(function() {
$("#menu a").click(function() {
var page = $(this).attr("href");
$.ajax({
url: "pages/" + page,
cache: false,
success: function(html) {
afficher(html, page);
history.pushState({ key: 'value'}, 'hash', page);
},
error:function(XMLHttpRequest, textStatus, errorThrown) {
afficher("erreur lors du chagement de la page");
}
});
return false;
});
$('#container').on('click', '.vs-transform a', function() {
var page = $(this).attr("href");
$.ajax({
url: "pages/" + page,
cache: false,
success: function(html) {
afficher(html, page);
history.pushState({key : 'value'}, 'hash', page);
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
afficher("erreur lors du chagement de la page");
}
});
return false;
});
window.onpopstate = function(event) {
if (event.state === null) {
// Here have to make the same fadeout-in effect but how to get my data variable?
}
};
});
function afficher(data, page) {
$("#container").delay( 100 ).fadeOut(400, function() {
$("#container").empty();
$("#container").append(data);
$("#container").fadeIn(500);
});
}
我的CMakeLists.txt如下所示:
/usr/local/opt/opencv3
/usr/local/opt/opencv
我正在使用OpenCV_DIR来指向我想要使用的OpenCV的位置(在此示例中,它是在100%确定此变量指向正确位置之前立即设置的)。
我的输出是:
cmake_minimum_required(VERSION 2.8)
set(ENV{OpenCV_DIR} "/usr/local/opt/opencv3")
project(TestProject)
#OpenCV
find_package( OpenCV 3 REQUIRED )
include_directories( ${OpenCV_INCLUDE_DIRS} )
MESSAGE ( STATUS "Found OpenCV: ${OpenCV_VERSION}" )
MESSAGE ( STATUS "OpenCV_INCLUDE_DIRS= ${OpenCV_INCLUDE_DIRS}" )
MESSAGE ( STATUS "OpenCV_DIR= $ENV{OpenCV_DIR}" )
所以,它找到了正确版本的OpenCV(3.0.0),但是包含路径被设置为其他一些opencv,在这种情况下/ usr / local / include / opencv指向/ usr / local / opt / opencv,这是2.4.8版本。
因此,我的程序都没有找到要包含的正确文件!有没有人知道如何告诉CMake要查找哪个版本,如果OpenCV_DIR环境变量似乎不起作用?
答案 0 :(得分:2)
您可以在find_package
中明确分配路径。例如,
find_package( OpenCV 3 REQUIRED PATHS "/usr/local/opt/opencv3" )
答案 1 :(得分:1)
如所示,OP正在使用cMake V2.8。因此,以下内容适用于包括所需的目录。
#OpenCV
find_package( OpenCV 3 REQUIRED )
include_directories([BEFORE] "/usr/local/opt/opencv3") # your cv2 desired folder
# stated here.
[BEFORE]
参数通知cMake该特定文件夹首先使用,而不是其他CV文件夹。
对于高于v2.8的cMake,您应该不使用include_directories
,而应使用以下内容:
target_include_directories(test PRIVATE ${YOUR_DIRECTORY})