cmake find_package indiquez le chemin d'accès
J'ai 2 versions de OpenCV installé sur ma machine. On est dans /usr/local/opencv3.1
. Je présume que l'emplacement d'installation de l'autre (version 3.4) est /usr/local
. De toute façon, find_package(OpenCV 3.0 REQUIRED)
jeux de OpenCV_DIR:PATH=/usr/local/share/OpenCV
. Ce dossier contient:
haarcascades OpenCVConfig.cmake OpenCVModules-release.cmake
java OpenCVConfig-version.cmake valgrind_3rdparty.supp
lbpcascades OpenCVModules.cmake valgrind.supp
Dans ce cas, la version 3.4 est utilisé. Comment puis-je spécifier dans CMakeLists.txt pour utiliser l'autre version (3.1) la connaissance de son emplacement d'installation? J'ai essayé:
find_package(OpenCV 3.0 REQUIRED PATH /usr/local/opencv3.1)
Qui renvoie une erreur:
Could NOT find OpenCV (missing: PATH /usr/local/opencv3.1) (found suitable version "3.4.1", minimum required is "3.0")
et
set(OpenCV_DIR /usr/local/opencv3.1/OpenCV/*) # also tried OpenCV_ROOT_DIR, OPENCV_ROOT_DIR
find_package(OpenCV 3.0 REQUIRED)
Qui ne fait rien. Elle trouve toujours de la version 3.4. Je serais reconnaissant pour toute aide. Merci.
Vous devez vous connecter pour publier un commentaire.
Dans le find_package documentation - vous que vous pouvez définir un chemin d'accès pour effectuer des recherches avec la
PATHS
vous avez été absent de la S... vous pouvez aussi faire quelque chose comme:Qui permettra de vérifier le chemin d'accès que vous avez écrit tout d'abord, si il est trouvé, il sera ensemble pour de vrai et de la deuxième instruction est ignorée.
Aussi, vous pouvez utiliser le
EXACT
option pour correspondre à une version spécifique, dans le cas où il essaie de sélectionner 3.4, due à une version plus récente.J'espère que cette aide, si non, écrivez un commentaire
NO_DEFAULT_PATH
quand j'ai besoin d'une bibliothèque dans un chemin d'accès spécifique et généralement cela fonctionne bien.... Cependant, je l'ai utilisé pour les bibliothèques qui ne sont pas installés sur mon ordinateur, mais juste de compiler....